BITMAP_AGG
更新时间:2025-10-16
描述
聚合某列的值(不包括任何空值)返回一行 bitmap 值,即多行转一行。
语法
SQL
1BITMAP_AGG(<expr>)
参数
| 参数 | 说明 |
|---|---|
<expr> |
待合并数值的列或表达式,expr 的类型需要为 TINYINT,SMALLINT,INT,LARGEINT 和 BIGINT 类型,也支持可以转化为以上类型的 VARCHAR。 |
返回值
返回 BITMAP 类型的值。特殊情况:
- 如果某个值小于 0 或者大于 18446744073709551615,该值会被忽略,不会合并到 Bitmap 中
举例
SQL
1select * from test_bitmap_agg;
Text
1+------+------+------+------+------+-------------+----------------------+
2| id | k0 | k1 | k2 | k3 | k4 | k5 |
3+------+------+------+------+------+-------------+----------------------+
4| 1 | 10 | 110 | 11 | 300 | 10000000000 | 0 |
5| 2 | 20 | 120 | 21 | 400 | 20000000000 | 200000000000000 |
6| 3 | 30 | 130 | 31 | 350 | 30000000000 | 300000000000000 |
7| 4 | 40 | 140 | 41 | 500 | 40000000000 | 18446744073709551616 |
8| 5 | 50 | 150 | 51 | 250 | 50000000000 | 18446744073709551615 |
9| 6 | 60 | 160 | 61 | 600 | 60000000000 | -1 |
10| 7 | 60 | 160 | 120 | 600 | 60000000000 | NULL |
11+------+------+------+------+------+-------------+----------------------+
SQL
1select bitmap_to_string(bitmap_agg(k0)) from test_bitmap_agg;
Text
1+----------------------------------+
2| bitmap_to_string(bitmap_agg(k0)) |
3+----------------------------------+
4| 10,20,30,40,50,60 |
5+----------------------------------+
SQL
1select bitmap_to_string(bitmap_agg(k5)) from test_bitmap_agg;
Text
1+--------------------------------------------------------+
2| bitmap_to_string(bitmap_agg(cast(k5 as BIGINT))) |
3+--------------------------------------------------------+
4| 0,200000000000000,300000000000000,18446744073709551615 |
5+--------------------------------------------------------+
