跳到主要内容
版本:Latest-3.3

distinct_map_keys

功能

删除 Map 中重复的 Key。从语义上讲,Map 中的 Key 不可以重复,Value 可以重复。对于 Key 相同的键值对,该函数仅保留最后一个出现的键值对 (LAST WIN 原则)。比如,SELECT distinct_map_keys(map{1:3,1:'4'}); 返回 {1:"4"}

该函数可用于在查询外部 MAP 数据时,对 Map 中的 Key 进行去重。StarRocks 原生表会自动对 Map 中重复的 Key 进行去重。

该函数从 3.1 版本开始支持。

语法

distinct_map_keys(any_map)

参数说明

any_map: Map 表达式。

返回值说明

返回 Key 值不重复的新 Map。

如果输入值为 NULL,则返回 NULL。

示例

示例一:简单用法。

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

示例二:从外表中查询 Map 数据并删除 col_map 列中重复的 Key。unique 列为返回的结果。

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)