ホームページ >データベース >mysql チュートリアル >SQL Server の GROUP BY 句を使用してレポート ID によって電子メールを連結するにはどうすればよいですか?
SQL Server: GROUP BY
を使用したレポート ID グループ内の電子メールの連結SQL Server では、データを効率的にグループ化し、関連する値を単一の文字列に結合することが一般的なタスクです。 GROUP BY
句は、指定された列に基づいて行をグループ化し、データの操作と計算に集計関数を使用できるようにします。
レポート ID によるメールの結合
次のような構造のテーブルを想像してください:
<code>ID ReportId Email 1 1 [email protected] 2 2 [email protected] 3 1 [email protected] 4 3 [email protected] 5 3 [email protected]</code>
目的は、行を ReportId
でグループ化し、対応する電子メールをカンマ区切りの文字列に連結することです。 目的の出力:
<code>ReportId Email 1 [email protected], [email protected] 2 [email protected] 3 [email protected], [email protected]</code>
STUFF() 関数の活用
これは、サブクエリ内の 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>
詳細な説明:
ReportId
のすべての電子メールを選択し、各電子メールの前にカンマとスペースを追加します。FOR XML PATH('')
は、サブクエリの結果を単一の XML 文字列に変換します。STUFF()
は、XML 文字列から先頭のカンマとスペースを削除し、目的のカンマ区切りの電子メール リストを作成します。さらなる考慮事項:
SUM()
、AVG()
など) は、グループ化されたデータのさまざまな計算のために GROUP BY
とともに使用できます。STUFF()
は、さまざまな文字列操作操作を行うための汎用性の高い関数です。以上がSQL Server の GROUP BY 句を使用してレポート ID によって電子メールを連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。