首页/数据/NoSQL 速查/去重计数 uniq 系列函数
ClickHouse56 条

去重计数 uniq 系列函数

uniq 系列统计不同值个数:uniq 为近似算法(省内存、有误差),uniqExact 为精确算法(内存随基数线性增长),按精度要求选择。

NoSQL 速查数据更新于 2026-10-12
近似uniq、uniqCombined、uniqHLL12(不同精度/资源特征)
精确uniqExact,大基数时内存开销明显
组合uniq(x) 与 groupUniqArray(x) 可分别拿数量与列表

示例

示例
SELECT
    toDate(ts) AS d,
    uniq(user_id) AS approx_uv,
    uniqExact(user_id) AS exact_uv
FROM events
GROUP BY d
ORDER BY d;
监控看板用 uniq 足够;对外出具结算类数字用 uniqExact 或落地去重表。

易错点

  • 把近似函数当精确值使用会产生对账差异,报表口径要写清使用哪种
  • uniqExact 对高基数列可能触发内存限制,必要时分批聚合再合并状态

数据来源与参考

  • ClickHouse Docs: uniq / uniqExact
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌