この関数は、2 つの入力フィールドをキーと値として使用してマップを構築します。最初のフィールドはマップのキーとして使用されます。同じキーを持つ 2 番目のフィールドのすべての値は、マップの値として配列に構築されます。キーが NULL の場合は無視されます。
使用上の注意
MaxCompute V2.0 では追加機能が提供されています。使用する関数が TINYINT、SMALLINT、INT、FLOAT、VARCHAR、TIMESTAMP、BINARY などの新しいデータ型を含む場合は、MaxCompute V2.0 データ型エディションを有効にするために文を実行する必要があります。
セッションレベル: 実行する SQL 文の前に
set odps.sql.type.system.odps2=true;を追加し、コミットして一緒に実行します。プロジェクトレベル: プロジェクトオーナーは、プロジェクト要件に基づいてプロジェクトの MaxCompute V2.0 データ型エディションを有効にすることができます。文:
setproject odps.sql.type.system.odps2=true;構成は 10 ~ 15 分後に有効になります。
setprojectの詳細については、「プロジェクト操作」をご参照ください。プロジェクトレベルで MaxCompute V2.0 データ型エディションを有効にする際に注意すべき事項については、「データ型エディション」をご参照ください。
複数の集計関数を含む SQL 文を使用し、プロジェクト リソースが不足している場合、メモリ オーバーフローが発生する可能性があります。ビジネス要件に基づいて SQL 文を最適化するか、計算リソースを購入することをお勧めします。
構文
map<K, array<V>> multimap_agg(K a, V b);パラメーター
a: マップのキー。
b: 同じキーを持つ値は、マップの値として同じ配列に配置されます。
戻り値
新しいマップが返されます。
例
select multimap_agg(a, b) from
values (1L, 'apple'), (2L, 'hi'), (null, 'good'), (1L, 'pie') t(a, b);結果例:
+----------------------------------+
| _c0 |
+----------------------------------+
| {"2":["hi"],"1":["apple","pie"]} |
+----------------------------------+関連関数
MULTIMAP_AGG は集計関数です。その他の集計関数の詳細については、「集計関数」をご参照ください。