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

BITMAP_AGG

デスクリプション

列の値を集約し(NULL値は除外)、単一行のビットマップ値を返します。つまり、複数の行を1つに変換します。

Syntax

BITMAP_AGG(<expr>)

パラメータ

Parameterデスクリプション
<expr>集約される値の列または式。exprの型はTINYINT、SMALLINT、INT、LARGEINT、またはBIGINTである必要があり、これらの型のいずれかに変換可能なVARCHARもサポートしています。

Return Value

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

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

Example

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 |
+--------------------------------------------------------+