说明
Array 组合器
可应用于 uniq
函数,使用 uniqArray 聚合组合器函数
计算所有数组中唯一元素的近似个数。
当你需要统计数据集中
多个数组中的唯一元素时,uniqArray 函数非常有用。它等同于使用 uniq(arrayJoin()):其中
arrayJoin 先将数组展平,再由 uniq 统计唯一元素。
示例用法
在本示例中,我们将使用一个包含不同类别用户兴趣的示例数据集,来演示 uniqArray 的工作原理。我们还会将它与
uniq(arrayJoin()) 进行比较,以说明在统计唯一元素时的差别。
CREATE TABLE user_interests
(
user_id UInt32,
interests Array(String)
) ENGINE = Memory;
INSERT INTO user_interests VALUES
(1, ['reading', 'gaming', 'music']),
(2, ['gaming', 'sports', 'music']),
(3, ['reading', 'cooking']);
SELECT
uniqArray(interests) AS unique_interests_total,
uniq(arrayJoin(interests)) AS unique_interests_arrayJoin
FROM user_interests;uniqArray 函数用于统计所有数组合并后的唯一元素个数,类似于 uniq(arrayJoin())。
在此示例中:
uniqArray返回 5,因为所有用户的兴趣中一共有 5 个唯一值:'reading'、'gaming'、'music'、'sports'、'cooking'uniq(arrayJoin())也返回 5,这表明这两个函数都会统计所有数组中的唯一元素个数
┌─unique_interests_total─┬─unique_interests_arrayJoin─┐
1. │ 5 │ 5 │
└────────────────────────┴────────────────────────────┘