Последнее обновление
INTERSECT_COUNT
Описание
Вычисляет пересечение двух или более bitmap. Использование: intersect_count(bitmap_column_to_count, filter_column, filter_values ...) Пример: intersect_count(user_id, event, 'A', 'B', 'C') вычисляет количество общих user_id во всех 3 bitmap A/B/C. Вычисляет количество элементов в пересечении bitmap из bitmap_column, отобранных по значениям column_to_filter из filter_values, то есть количество элементов в пересечении bitmap.
Синтаксис
INTERSECT_COUNT(<bitmap_column>, <column_to_filter>, <filter_values> [, ...])
Параметры
| Параметр | Описание |
|---|---|
<bitmap_column> | Входной столбец с bitmap. Поддерживаемые типы: Bitmap. |
<column_to_filter> | Столбец измерения, используемый для фильтрации. Поддерживаемые типы: TinyInt, SmallInt, Integer, BigInt, LargeInt. |
<filter_values> | Различные значения, используемые для фильтрации столбца измерения. Поддерживаемые типы: TinyInt, SmallInt, Integer, BigInt, LargeInt. |
Возвращаемое значение
Возвращает количество элементов в пересечении заданных bitmap.
Пример
-- setup
CREATE TABLE pv_bitmap (
dt INT,
user_id BITMAP,
city STRING
) DISTRIBUTED BY HASH(dt) BUCKETS 1
PROPERTIES ("replication_num" = "1");
INSERT INTO pv_bitmap VALUES
(20250801, to_bitmap(1), 'beijing'),
(20250801, to_bitmap(2), 'beijing'),
(20250801, to_bitmap(3), 'shanghai'),
(20250802, to_bitmap(3), 'beijing'),
(20250802, to_bitmap(4), 'shanghai'),
(20250802, to_bitmap(5), 'shenzhen');
select intersect_count(user_id,dt,20250801) from pv_bitmap;
+--------------------------------------+
| intersect_count(user_id,dt,20250801) |
+--------------------------------------+
| 3 |
+--------------------------------------+
Пересечение за два дня: подсчитывает пользователей, присутствующих как за 20250801, так и за 20250802 (только user_id 3 встречается в оба дня):
select intersect_count(user_id,dt,20250801,20250802) from pv_bitmap;
+-----------------------------------------------+
| intersect_count(user_id,dt,20250801,20250802) |
+-----------------------------------------------+
| 1 |
+-----------------------------------------------+