に最終更新
BITMAP_AGG
説明
入力式の NULL 以外の値を Bitmap に集約します。 値が 0 未満または 18446744073709551615 を超える場合は、その値を無視して Bitmap に統合しません。
構文
BITMAP_AGG(<expr>)
パラメータ
| パラメータ | 説明 |
|---|---|
<expr> | 集約対象の列または式。TinyInt、SmallInt、Integer、BigInt 型をサポートします。 |
戻り値
Bitmap 型の値を返します。グループ内に有効なデータがない場合は、空の Bitmap を返します。
使用例
-- setup
CREATE TABLE test_bitmap_agg (
id INT,
k0 INT,
k1 INT,
k2 INT,
k3 INT,
k4 BIGINT,
k5 VARCHAR(32)
) DISTRIBUTED BY HASH(id) BUCKETS 1
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 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(k5)) |
+--------------------------------------------------------+
| 0,200000000000000,300000000000000,18446744073709551615 |
+--------------------------------------------------------+
select bitmap_to_string(bitmap_agg(k5)) from test_bitmap_agg where k5 is null;
+----------------------------------+
| bitmap_to_string(bitmap_agg(k5)) |
+----------------------------------+
| |
+----------------------------------+
select bitmap_to_string(bitmap_agg(k5)) from test_bitmap_agg;
+--------------------------------------------------------+
| bitmap_to_string(bitmap_agg(cast(k5 as BIGINT))) |
+--------------------------------------------------------+
| 0,200000000000000,300000000000000,18446744073709551615 |
+--------------------------------------------------------+