ClickHouse/docs/ja/sql-reference/aggregate-functions/reference/groupconcat.md
2024-11-18 11:58:58 +09:00

2.6 KiB

slug sidebar_position sidebar_label title
/ja/sql-reference/aggregate-functions/reference/groupconcat 363 groupConcat groupConcat

文字列のグループから連結された文字列を計算します。区切り文字で区切ることも可能で、要素の最大数を制限することもできます。

構文

groupConcat[(delimiter [, limit])](expression);

引数

  • expression — 連結される文字列を出力する式またはカラム名。
  • delimiter — 連結される値を区切るために使われる文字列。このパラメータはオプションで、指定しない場合は空の文字列がデフォルトとなります。
  • limit — 連結する要素の最大数を指定する正の整数。もし要素がそれ以上ある場合、超過した要素は無視されます。このパラメータもオプションです。

:::note 区切り文字が指定され、limitが指定されていない場合、区切り文字は最初のパラメータでなければなりません。区切り文字とlimitの両方が指定されている場合、区切り文字はlimitよりも前に指定する必要があります。 :::

返される値

  • カラムまたは式の連結された値からなる文字列を返します。グループに要素がない、またはすべての要素がnullの場合、かつ関数がnull値のみの処理を指定していない場合、結果はnull値を持つnullableな文字列となります。

入力テーブル:

┌─id─┬─name─┐
│ 1  │  John│
│ 2  │  Jane│
│ 3  │   Bob│
└────┴──────┘
  1. 区切り文字なしの基本的な使用法:

クエリ:

SELECT groupConcat(Name) FROM Employees;

結果:

JohnJaneBob

すべての名前を区切りなしで一つの連続した文字列に連結します。

  1. 区切り文字としてカンマを使用する場合:

クエリ:

SELECT groupConcat(', ')(Name)  FROM Employees;

結果:

John, Jane, Bob

この出力では、カンマとスペースで名前が区切られています。

  1. 連結する要素数の制限

クエリ:

SELECT groupConcat(', ', 2)(Name) FROM Employees;

結果:

John, Jane

このクエリでは、テーブルにもっと名前があっても、最初の2つの名前だけが結果として表示されます。