distinct_map_keys
マップから重複するキーを削除します。マップ内のキーは意味的に一意でなければなりません。この関数は、同一のキーに対して最後の値のみを保持し、これを LAST WIN と呼びます。この関数は、外部テーブルから MAP データをクエリする際に、マップ内に重複するキーがある場合に使用されます。StarRocks の内部テーブルは、マップ内の重複するキーをネイティブに削除します。
この関数は v3.1 以降でサポートされています。
構文
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)