ORTHOGONAL_BITMAP_EXPR_CALCULATE_COUNT
描述
ORTHOGONAL_BITMAP_EXPR_CALCULATE_COUNT 函数返回对 Bitmap 表达式进行交并差计算后集合中的元素数量
语法
ORTHOGONAL_BITMAP_EXPR_CALCULATE_COUNT(<bitmap_column>, <column_to_filter>, <input_string>)
参数说明
参数 | 说明 |
---|---|
bitmap_column | 需要获取值的 Bitmap 类型表达式 |
column_to_filter | 过滤的维度列,即计算的 Key 列 |
input_string | 计算表达式字符串,含义是依据 Key 列进行 Bitmap 交并差集表达式计算,表达式支持的计算符:& 代表交集计算,| 代表并集计算,- 代表差集计算, ^ 代表异或计算,\ 代表转义字符 |
返回值
返回 BIGINT 类型的值。
举例
select orthogonal_bitmap_expr_calculate_count(user_id, tag, '(833736|999777)&(1308083|231207)&(1000|20000-30000)') from user_tag_bitmap where tag in (833736,999777,130808,231207,1000,20000,30000);
注:1000、20000、30000 等整形tag,代表用户不同标签
+-----------------------------------------------------------------------------------------------------------------+
| orthogonal_bitmap_expr_calculate_count(`user_id`, `tag`, '(833736|999777)&(1308083|231207)&(1000|20000-30000)') |
+-----------------------------------------------------------------------------------------------------------------+
| 1000 |
+-----------------------------------------------------------------------------------------------------------------+
select orthogonal_bitmap_expr_calculate_count(user_id, tag, '(A:a/b|B:2\\-4)&(C:1-D:12)&E:23') from user_str_tag_bitmap where tag in ('A:a/b', 'B:2-4', 'C:1', 'D:12', 'E:23');
注:'A:a/b', 'B:2-4'等是字符串类型tag,代表用户不同标签, 其中'B:2-4'需要转义成'B:2\\-4'
+---------------------------------------------------------------------------------------------+
| orthogonal_bitmap_expr_calculate_count(`user_id`, `tag`, '(A:a/b|B:2\\-4)&(C:1-D:12)&E:23') |
+---------------------------------------------------------------------------------------------+
| 30 |
+---------------------------------------------------------------------------------------------+