clickhouse:https://clickhouse.com/docs/zh/sql-reference/functions/bitmap-functions/#bitmapcontains
需求分析:
- 框选常用城市为山西,且消费性别为男或者未知的人群 ;
问题:
- 发现返回的人群数为0 ,预期结果:返回的人群数大于0 ;
问题分析:
SELECT groupBitmapAnd(uv) "交集" ,groupBitmapOr(uv) "并集" FROM ( SELECT 'flag' as flags,uv FROM db_dmp.ch_lable_string WHERE labelname ='gender_consume' AND labelvalue IN ('男','未知') UNION ALL SELECT 'flag' as flags,uv FROM db_dmp.ch_lable_string WHERE labelname ='often_province_cd' AND labelvalue IN ('140000000000') -- 山西 ) t
原因:
- 消费性别 男和未知的交集 确实为0 ,所以不能在最外层进行 groupBitmapAnd ,正确写法 见下图 :