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

distinct_map_keys

Описание

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

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

Синтаксис

distinct_map_keys(any_map)

Параметры

any_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)