LISTAGG()は、グループ化されたデータの値を1つの文字列に連結する集計関数です。複数行のデータを1行にまとめたい場合に特に便利で、カンマ区切りやその他の区切り文字で値を結合できます。
構文:
LISTAGG(expression [, ‘delimiter’]) WITHIN GROUP (ORDER BY order_list)
使用例:
sql
— 部署ごとの従業員名を連結
SELECT department,
LISTAGG(employee_name, ‘, ‘)
WITHIN GROUP (ORDER BY employee_name) as employees
FROM employees
GROUP BY department;
— 結果例
— 営業部 | 山田太郎, 鈴木一郎, 佐藤花子
— 総務部 | 伊藤誠, 高橋実
この関数は、レポート作成時のデータ集約や、関連データの可視化に役立ちます。特に、1対多の関係にあるデータを見やすく表示したい場合に重宝します。
注意点として、結果の文字列には最大文字数の制限があるため、大量のデータを連結する場合は注意が必要です。