この記事では、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において非常に便利な関数の一つです。同じグループ内の複数の行を文字列として連結する場合に大いに役立ちます。オプションでさまざまなカスタマイズも可能ですので、ぜひ積極的に使ってみてください。
created by Rinker
¥4,554
(2024/12/09 11:57:42時点 Amazon調べ-詳細)
コメント