跳到主要内容

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