Перейти к содержимому
Последнее обновление

BITMAP_XOR_COUNT

Описание​

Вычисляет симметрическую разность (операция XOR) двух или более множеств Bitmap и возвращает количество элементов в результирующем множестве.

Синтаксис​

BITMAP_XOR_COUNT(<bitmap1>, <bitmap2>, ..., <bitmapN>)

Параметры​

ПараметрОписание
<bitmap1>Первый Bitmap
<bitmap2>Второй Bitmap
......
<bitmapN>N-й Bitmap

Возвращаемое значение​

Количество элементов в Bitmap, полученном в результате операции XOR над несколькими Bitmap.
Возвращает 0, если хотя бы один из входных параметров Bitmap равен NULL.

Примеры​

Чтобы вычислить количество элементов в симметрической разности двух Bitmap:

select bitmap_xor_count(bitmap_from_string('1,2,3'), bitmap_from_string('3,4,5')) res;

Результат будет следующим:

+------+
| res |
+------+
| 4 |
+------+

Чтобы вычислить количество элементов в симметрической разности двух одинаковых Bitmap:

select bitmap_xor_count(bitmap_from_string('1,2,3'), bitmap_from_string('1,2,3')) res;

Результат будет следующим:

+------+
| res |
+------+
| 0 |
+------+

Чтобы вычислить количество элементов в симметрической разности двух разных Bitmap:

select bitmap_xor_count(bitmap_from_string('1,2,3'), bitmap_from_string('4,5,6')) res;

Результат будет следующим:

+------+
| res |
+------+
| 6 |
+------+

Чтобы вычислить количество элементов в симметрической разности трёх Bitmap:

select bitmap_xor_count(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5')) res;

Результат будет следующим:

+------+
| res |
+------+
| 3 |
+------+

Чтобы вычислить количество элементов в симметрической разности нескольких Bitmap, включая пустой Bitmap:

select bitmap_xor_count(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'), bitmap_empty());

Результат будет следующим:

+------+
| res |
+------+
| 3 |
+------+

Чтобы вычислить количество элементов в симметрической разности нескольких Bitmap, включая значение NULL:

select bitmap_xor_count(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'), NULL) res;

Результат будет следующим:

+------+
| res |
+------+
| 0 |
+------+