メインコンテンツまでスキップ
バージョン: Latest-3.4

array_unique_agg

ARRAY 列の異なる値 (NULL を含む) を集約し、1 つの行にまとめます。

この関数は v3.2 からサポートされています。

構文

ARRAY_UNIQUE_AGG(col)

パラメータ

  • col: 集約したい値を持つ列。サポートされているデータ型は ARRAY です。

戻り値

ARRAY 型の値を返します。

使用上の注意

  • 配列内の要素の順序はランダムです。
  • 返される配列内の要素のデータ型は、入力列の要素のデータ型と同じです。
  • 一致する値がない場合は NULL を返します。

次のデータテーブルを例にとります。

mysql > select * from array_unique_agg_example;
+------+--------------+
| a | b |
+------+--------------+
| 2 | [1,null,2,4] |
| 2 | [1,null,3] |
| 1 | [1,1,2,3] |
| 1 | [2,3,4] |
+------+--------------+

例 1: 列 a の値をグループ化し、列 b の異なる値を配列に集約します。

mysql > select a, array_unique_agg(b) from array_unique_agg_example group by a;
+------+---------------------+
| a | array_unique_agg(b) |
+------+---------------------+
| 1 | [4,1,2,3] |
| 2 | [4,1,2,3,null] |
+------+---------------------+

例 2: WHERE 句を使用して列 b の値を集約します。フィルター条件に一致するデータがない場合、NULL 値が返されます。

mysql > select array_unique_agg(b) from array_unique_agg_example where a < 0;
+---------------------+
| array_unique_agg(b) |
+---------------------+
| NULL |
+---------------------+

キーワード

ARRAY_UNIQUE_AGG, ARRAY