SQL Server の GROUP BY を使用してカンマ区切り値を連結する
SQL Server の GROUP BY
句は、共有属性に基づいてデータを集計する場合に非常に役立ちます。 ただし、複数の値を単一のカンマ区切り文字列に結合するには、もう少し高度なアプローチが必要です。ここで STUFF
関数が役に立ちます。
GROUP BY
と STUFF
を使用してカンマ区切りの集計を実現する方法は次のとおりです。
<code class="language-sql">SELECT ReportId, Email = STUFF((SELECT ', ' + Email FROM your_table b WHERE b.ReportId = a.ReportId FOR XML PATH('')), 1, 2, '') FROM your_table a GROUP BY ReportId</code>
このクエリを分析してみましょう:
SELECT
: これは、ReportId
と集約された Email
文字列を取得します。STUFF
関数: これは、電子メールを巧妙に連結し、それぞれの間にカンマとスペースを挿入します。SELECT
: このサブクエリは、特定の ReportId
に関連付けられたすべての電子メールを取得します。FOR XML PATH('')
: これは、内部クエリの結果セットを XML 文字列に変換し、連結に便利な形式を提供します。WHERE
句: これにより、内部クエリが外部クエリから ReportId
に一致するメールのみを選択するようになります。このクエリをサンプル データに適用すると、次の結果が生成されます:
ReportId | |
---|---|
1 | [email protected], [email protected] |
2 | [email protected] |
3 | [email protected], [email protected] |
この手法はカンマ区切りのリストを効率的に生成し、集約されたデータの処理を簡素化します。
以上がSQL Server の GROUP BY 句を使用してカンマ区切り値を集計する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。