メインコンテンツまでスキップ

distinct_map_keys

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)