BITMAP_OR
描述
计算两个及以上的 Bitmap 的并集,返回新的 Bitmap。
语法
bitmap_or(<bitmap1>, <bitmap2>, ..., <bitmapN>)
参数
| 参数 | 描述 | 
|---|---|
| <bitmap1> | 第一个 Bitmap | 
| <bitmap2> | 第二个 Bitmap | 
| ... | ... | 
| <bitmapN> | 第 N 个 Bitmap | 
返回值
多个 Bitmap 并集的 Bitmap。
示例
计算两个相同 Bitmap 的并集:
select bitmap_count(bitmap_or(to_bitmap(1), to_bitmap(1))) cnt;
结果如下:
+------+
| cnt  |
+------+
|    1 |
+------+
将两个相同 Bitmap 的并集转换为字符串:
select bitmap_to_string(bitmap_or(to_bitmap(1), to_bitmap(1)));
结果如下:
+---------------------------------------------------------+
| bitmap_to_string(bitmap_or(to_bitmap(1), to_bitmap(1))) |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
计算两个不同 Bitmap 的并集:
select bitmap_count(bitmap_or(to_bitmap(1), to_bitmap(2))) cnt;
结果如下:
+------+
| cnt  |
+------+
|    2 |
+------+
将两个不同 Bitmap 的并集转换为字符串:
select bitmap_to_string(bitmap_or(to_bitmap(1), to_bitmap(2)));
结果如下:
+---------------------------------------------------------+
| bitmap_to_string(bitmap_or(to_bitmap(1), to_bitmap(2))) |
+---------------------------------------------------------+
| 1,2                                                     |
+---------------------------------------------------------+
计算多个 Bitmap(包括 NULL 值)的并集:
select bitmap_to_string(bitmap_or(to_bitmap(1), to_bitmap(2), to_bitmap(10), to_bitmap(0), NULL));
结果如下:
+--------------------------------------------------------------------------------------------+
| bitmap_to_string(bitmap_or(to_bitmap(1), to_bitmap(2), to_bitmap(10), to_bitmap(0), NULL)) |
+--------------------------------------------------------------------------------------------+
| 0,1,2,10                                                                                   |
+--------------------------------------------------------------------------------------------+
计算多个 Bitmap(包括空 Bitmap)的并集:
select bitmap_to_string(bitmap_or(to_bitmap(1), to_bitmap(2), to_bitmap(10), to_bitmap(0), bitmap_empty()));
结果如下:
+------------------------------------------------------------------------------------------------------+
| bitmap_to_string(bitmap_or(to_bitmap(1), to_bitmap(2), to_bitmap(10), to_bitmap(0), bitmap_empty())) |
+------------------------------------------------------------------------------------------------------+
| 0,1,2,10                                                                                             |
+------------------------------------------------------------------------------------------------------+
计算由字符串和单个值创建的 Bitmap 的并集:
select bitmap_to_string(bitmap_or(to_bitmap(10), bitmap_from_string('1,2'), bitmap_from_string('1,2,3,4,5')));
结果如下:
+--------------------------------------------------------------------------------------------------------+
| bitmap_to_string(bitmap_or(to_bitmap(10), bitmap_from_string('1,2'), bitmap_from_string('1,2,3,4,5'))) |
+--------------------------------------------------------------------------------------------------------+
| 1,2,3,4,5,10                                                                                           |
+--------------------------------------------------------------------------------------------------------+