Skip to main content

BITMAP_XOR_COUNT

Description​

Computes the symmetric difference (XOR operation) of two or more Bitmap sets and returns the count of elements in the result set.

Syntax​

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

Parameters​

ParameterDescription
<bitmap1>The first Bitmap
<bitmap2>The second Bitmap
......
<bitmapN>The N-th Bitmap

Return Value​

The count of elements in the Bitmap resulting from the XOR operation of multiple Bitmaps.
Returns NULL if any of the input Bitmap parameters is NULL.

Examples​

To compute the count of elements in the symmetric difference of two Bitmaps:

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

The result will be:

+----------------------------------------------------------------------------+
| bitmap_xor_count(bitmap_from_string('1,2,3'), bitmap_from_string('3,4,5')) |
+----------------------------------------------------------------------------+
| 4 |
+----------------------------------------------------------------------------+

To compute the count of elements in the symmetric difference of two identical Bitmaps:

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

The result will be:

+----------------------------------------------------------------------------+
| bitmap_xor_count(bitmap_from_string('1,2,3'), bitmap_from_string('1,2,3')) |
+----------------------------------------------------------------------------+
| 0 |
+----------------------------------------------------------------------------+

To compute the count of elements in the symmetric difference of two different Bitmaps:

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

The result will be:

+----------------------------------------------------------------------------+
| bitmap_xor_count(bitmap_from_string('1,2,3'), bitmap_from_string('4,5,6')) |
+----------------------------------------------------------------------------+
| 6 |
+----------------------------------------------------------------------------+

To compute the count of elements in the symmetric difference of three Bitmaps:

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

The result will be:

+-----------------------------------------------------------------------------------------------------------+
| bitmap_xor_count(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5')) |
+-----------------------------------------------------------------------------------------------------------+
| 3 |
+-----------------------------------------------------------------------------------------------------------+

To compute the count of elements in the symmetric difference of multiple Bitmaps, including an empty 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());

The result will be:

+---------------------------------------------------------------------------------------------------------------------------+
| bitmap_xor_count(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'), bitmap_empty()) |
+---------------------------------------------------------------------------------------------------------------------------+
| 3 |
+---------------------------------------------------------------------------------------------------------------------------+

To compute the count of elements in the symmetric difference of multiple Bitmaps, including a NULL value:

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

The result will be:

+-----------------------------------------------------------------------------------------------------------------+
| bitmap_xor_count(bitmap_from_string('2,3'), bitmap_from_string('1,2,3,4'), bitmap_from_string('3,4,5'), NULL) |
+-----------------------------------------------------------------------------------------------------------------+
| NULL |
+-----------------------------------------------------------------------------------------------------------------+