メインコンテンツまでスキップ
バージョン: 4.x

BITMAP_AGG

説明

列の値を集約し(NULL値は除く)、単一行のbitmap値を返します。つまり、複数行を1行に変換します。

構文

BITMAP_AGG(<expr>)

パラメータ

パラメータ説明
<expr>集約する値の列または式。exprの型はTINYINT、SMALLINT、INT、LARGEINT、またはBIGINTである必要があり、これらの型のいずれかに変換可能なVARCHARもサポートします。

戻り値

BITMAP型の値を返します。特殊なケース:

  • 値が0未満または18446744073709551615より大きい場合、その値は無視され、Bitmapにマージされません。

create table test_bitmap_agg(
id int,
k0 int,
k1 varchar(32),
k2 int,
k3 int,
k4 bigint,
k5 varchar(32)
) properties('replication_num' = '1');
insert into test_bitmap_agg values
(1, 10, '110', 11, 300, 10000000000, '0'),
(2, 20, '120', 21, 400, 20000000000, '200000000000000'),
(3, 30, '130', 31, 350, 30000000000, '300000000000000'),
(4, 40, '140', 41, 500, 40000000000, '18446744073709551616'),
(5, 50, '150', 51, 250, 50000000000, '18446744073709551615'),
(6, 60, '160', 61, 600, 60000000000, '-1'),
(7, 60, '160', 120, 600, 60000000000, NULL);
select * from test_bitmap_agg;
+------+------+------+------+------+-------------+----------------------+
| id | k0 | k1 | k2 | k3 | k4 | k5 |
+------+------+------+------+------+-------------+----------------------+
| 1 | 10 | 110 | 11 | 300 | 10000000000 | 0 |
| 2 | 20 | 120 | 21 | 400 | 20000000000 | 200000000000000 |
| 3 | 30 | 130 | 31 | 350 | 30000000000 | 300000000000000 |
| 4 | 40 | 140 | 41 | 500 | 40000000000 | 18446744073709551616 |
| 5 | 50 | 150 | 51 | 250 | 50000000000 | 18446744073709551615 |
| 6 | 60 | 160 | 61 | 600 | 60000000000 | -1 |
| 7 | 60 | 160 | 120 | 600 | 60000000000 | NULL |
+------+------+------+------+------+-------------+----------------------+
select bitmap_to_string(bitmap_agg(k0)) from test_bitmap_agg;
+----------------------------------+
| bitmap_to_string(bitmap_agg(k0)) |
+----------------------------------+
| 10,20,30,40,50,60 |
+----------------------------------+
select bitmap_to_string(bitmap_agg(k5)) from test_bitmap_agg;
+--------------------------------------------------------+
| bitmap_to_string(bitmap_agg(cast(k5 as BIGINT))) |
+--------------------------------------------------------+
| 0,200000000000000,300000000000000,18446744073709551615 |
+--------------------------------------------------------+