ClickHouse的近似值计算

最近在使用基于Bitmap来计算人群,发现预估出来的人群数有出入。
使用的是以下的SQL

select uniqArray(bitmapToArray(btm_ids)) FROM testlabel

后来经过查资料发现,uniqArray(array_xxx) 相当于 uniq(arrayJoin(array_xxx))
而uniq是一个近似数量的计算,所以计算出来的结果有时会有出入,但不会差很远。

当然如果只是需要计算人群的数量有个更方便的方法:

select toTypeName(btm_ids), bitmapCardinality(btm_ids) FROM testlabel
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容