Перейти к основному содержимому
Версия: 2.0.x

distinct_map_keys

Удаляет дублирующиеся ключи из map, поскольку ключи в map должны быть уникальными по семантике. Эта функция сохраняет только последнее значение для идентичных ключей (принцип LAST WIN). Эта функция используется при запросе данных MAP из внешних таблиц, если в map есть дублирующиеся ключи. Внутренние таблицы Selena изначально удаляют дублирующиеся ключи в map.

Эта функция поддерживается начиная с версии v1.5.2.

Синтаксис

distinct_map_keys(any_map)

Параметры

any_map: значение MAP, из которого вы хотите удалить дублирующиеся ключи.

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

Возвращает новый map без дублирующихся ключей в каждом map.

Если входное значение равно NULL, возвращается NULL.

Примеры

Пример 1: Простое использование.

select distinct_map_keys(map{"a":1,"a":2});
+-------------------------------------+
| distinct_map_keys(map{'a':1,'a':2}) |
+-------------------------------------+
| {"a":2} |
+-------------------------------------+

Пример 2: Запрос данных MAP из внешних таблиц и удаление дублирующихся ключей из столбца col_map.

select distinct_map_keys(col_map) as unique, col_map from external_table;
+---------------+---------------+
| unique | col_map |
+---------------+---------------+
| {"c":2} | {"c":1,"c":2} |
| NULL| NULL |
| {"e":4,"d":5} | {"e":4,"d":5} |
+---------------+---------------+
3 rows in set (0.05 sec)