GROUP BY を使用した SQL でのカンマ区切りの集計データの生成
このガイドでは、SQL でデータを効率的に集計し、結果を特定の列ごとにグループ化されたカンマ区切りのリストとして出力する方法について説明します。 これは、いくつかの解決策がある一般的な SQL タスクです。
チャレンジ
次のような構造のテーブルを想像してください:
ID | Value |
---|---|
1 | a |
1 | b |
2 | c |
目的は、このデータを統合し、ID
列でグループ化し、対応する Value
エントリを各グループの単一のカンマ区切り文字列に連結することです。
解決策: FOR XML PATH の活用
強力かつ簡潔なメソッドは、FOR XML PATH
構造を利用します。
<code class="language-sql">SELECT ID, STUFF((SELECT ', ' + Value FROM YourTable t2 WHERE t1.ID = t2.ID FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values FROM YourTable t1 GROUP BY ID;</code>
このクエリは、FOR XML PATH('')
を含むサブクエリを使用して、連結された値の XML 表現を生成します。 .value('.', 'NVARCHAR(MAX)')
メソッドはこれを文字列として抽出します。 最後に、STUFF
は先頭のカンマとスペースを削除します。
さらなる探索
より高度なシナリオと代替アプローチについては、次の関連リソースを参照してください。
FOR XML PATH
メソッドを使用するか、他の SQL テクニックを検討することにより、データを効果的に集計し、使いやすいカンマ区切り形式で表示できます。
以上がGROUP BYを使用してカンマ区切りの集計SQL結果を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。