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

GROUP_CONCAT

説明

GROUP_CONCAT関数は、結果セット内の複数行の結果を文字列に連結します。

構文

GROUP_CONCAT([DISTINCT] <str>[, <sep>] [ORDER BY { <col_name> | <expr>} [ASC | DESC]])

パラメータ

パラメータ説明
<str>必須。連結する値の式。
<sep>オプション。文字列間のセパレータ。
<col_name>オプション。ソートに使用するカラム。
<expr>オプション。ソートに使用する式。

戻り値

VARCHAR型の値を返します。

-- setup
create table test(
value varchar(10)
) distributed by hash(value) buckets 1
properties ("replication_num"="1");

insert into test values
("a"),
("b"),
("c"),
("c");
select value from test;
+-------+
| value |
+-------+
| a |
| b |
| c |
| c |
+-------+
select GROUP_CONCAT(value) from test;
+-----------------------+
| GROUP_CONCAT(`value`) |
+-----------------------+
| a, b, c, c |
+-----------------------+
select GROUP_CONCAT(DISTINCT value) from test;
+-----------------------+
| GROUP_CONCAT(`value`) |
+-----------------------+
| a, b, c |
+-----------------------+
select GROUP_CONCAT(value ORDER BY value DESC) from test;
+-----------------------+
| GROUP_CONCAT(`value`) |
+-----------------------+
| c, c, b, a |
+-----------------------+
注記

3.0.2以降、GROUP_CONCAT内でのDISTINCTORDER BYの組み合わせがサポートされています。

select GROUP_CONCAT(DISTINCT value ORDER BY value DESC) from test;
+-----------------------+
| GROUP_CONCAT(`value`) |
+-----------------------+
| c, b, a |
+-----------------------+
select GROUP_CONCAT(value, " ") from test;
+----------------------------+
| GROUP_CONCAT(`value`, ' ') |
+----------------------------+
| a b c c |
+----------------------------+
select GROUP_CONCAT(value, NULL) from test;
+----------------------------+
| GROUP_CONCAT(`value`, NULL)|
+----------------------------+
| NULL |
+----------------------------+