メインコンテンツまでスキップ
バージョン: 4.x

COLLECT_SET

デスクリプション

Aggregation functionは、指定された列のすべての一意な値を集約し、重複する要素を削除して、set型の結果を返します。

Alias

  • GROUP_UNIQ_ARRAY

Syntax

COLLECT_SET(<expr> [,<max_size>])

パラメータ

Parameterデスクリプション
<expr>集計する列または式
<max_size>結果配列のサイズをmax_size要素に制限するために設定できるオプションパラメータ

Return Value

戻り値の型はARRAYです。この配列には重複除去後のすべての値が含まれます。特殊ケース:

  • 値がNULLの場合、フィルタされます

Example

select k1,k2,k3 from collect_set_test order by k1;
+------+------------+-------+
| k1 | k2 | k3 |
+------+------------+-------+
| 1 | 2023-01-01 | hello |
| 2 | 2023-01-01 | NULL |
| 2 | 2023-01-02 | hello |
| 3 | NULL | world |
| 3 | 2023-01-02 | hello |
| 4 | 2023-01-02 | doris |
| 4 | 2023-01-03 | sql |
+------+------------+-------+
select collect_set(k1),collect_set(k1,2) from collect_set_test;
+-------------------------+--------------------------+
| collect_set(`k1`) | collect_set(`k1`,2) |
+-------------------------+--------------------------+
| [4,3,2,1] | [1,2] |
+----------------------------------------------------+
select k1,collect_set(k2),collect_set(k3,1) from collect_set_test group by k1 order by k1;
+------+-------------------------+--------------------------+
| k1 | collect_set(`k2`) | collect_set(`k3`,1) |
+------+-------------------------+--------------------------+
| 1 | [2023-01-01] | [hello] |
| 2 | [2023-01-01,2023-01-02] | [hello] |
| 3 | [2023-01-02] | [world] |
| 4 | [2023-01-02,2023-01-03] | [sql] |
+------+-------------------------+--------------------------+