ホームページ > データベース > mysql チュートリアル > GROUP BYを使用してカンマ区切りの集計SQL結果を取得するにはどうすればよいですか?

GROUP BYを使用してカンマ区切りの集計SQL結果を取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-07 20:23:40
オリジナル
244 人が閲覧しました

How to Retrieve Comma-Separated Aggregated SQL Results Using GROUP BY?

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 は先頭のカンマとスペースを削除します。

さらなる探索

より高度なシナリオと代替アプローチについては、次の関連リソースを参照してください。

  • SQL: 複数のテーブルのデータを単一のカンマ区切りリストに結合する
  • 文字列集約のための効率的な SQL テクニック

FOR XML PATH メソッドを使用するか、他の SQL テクニックを検討することにより、データを効果的に集計し、使いやすいカンマ区切り形式で表示できます。

以上がGROUP BYを使用してカンマ区切りの集計SQL結果を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート