SQLでGROUP_CONCAT()を使ってグループ化された結果を文字列として連結する方法

この記事では、SQLにおいて`GROUP_CONCAT()`関数を使って、グループ化された結果を文字列として連結する方法について解説します。`GROUP_CONCAT()`はMySQLやSQLiteで利用できる関数で、GROUP BYを用いた際に便利です。この関数をうまく使いこなせば、クエリをよりシンプルに、そしてパワフルに使えるようになります。

目次

GROUP_CONCAT()とは?

`GROUP_CONCAT()`は、SQLにおける集計関数の一つです。この関数は、同じグループ内の複数の行にわたる列の値を連結し、その結果を文字列として返します。

基本的な使い方

基本的な使い方は以下の通りです。

SELECT グループ化する列, GROUP_CONCAT(連結する列)
FROM テーブル名
GROUP BY グループ化する列;

例:従業員テーブル

例として、以下のような「従業員テーブル」を考えます。

従業員ID名前部署
1田中営業
2佐藤営業
3鈴木開発
4高橋開発
従業員テーブル

このテーブルで、部署ごとに名前を連結したい場合は、次のようにします。

SELECT 部署, GROUP_CONCAT(名前)
FROM 従業員
GROUP BY 部署;

GROUP_CONCAT()のオプション

`GROUP_CONCAT()`関数には、さまざまなオプションを指定できます。

区切り文字の指定

デフォルトでは、連結する値はカンマで区切られますが、これを変更することも可能です。

SELECT 部署, GROUP_CONCAT(名前 SEPARATOR ' | ')
FROM 従業員
GROUP BY 部署;

ソート順の指定

連結する値のソート順を指定することもできます。

SELECT 部署, GROUP_CONCAT(名前 ORDER BY 名前 ASC)
FROM 従業員
GROUP BY 部署;

まとめ

`GROUP_CONCAT()`関数は、SQLにおいて非常に便利な関数の一つです。同じグループ内の複数の行を文字列として連結する場合に大いに役立ちます。オプションでさまざまなカスタマイズも可能ですので、ぜひ積極的に使ってみてください。

コメント

コメントする

目次