SQL Serverでの明確な値の連結にstring_aggを使用する
:実用的なアプローチ
SQL Serverのstring_agg関数は、複数の値の連結を単一の文字列に単純化します。 ただし、string_aggとの明確な値の連結を直接達成するには、回避策が必要です。この記事では、大規模なデータセットであっても、string_aggを使用して異なる値をカウントおよび連結する2段階のプロセスの概要を説明します。
解決策:
この方法では、アプローチによる2段階グループを使用します:
重複を排除します:最初の操作により重複する行が削除され、指定された列の一意の組み合わせのみが考慮されるようにします。
GROUP BY
<code class="language-sql">WITH Sitings AS ( SELECT * FROM (VALUES (1, 'Florida', 'Orlando', 'bird'), (2, 'Florida', 'Orlando', 'dog'), (3, 'Arizona', 'Phoenix', 'bird'), (4, 'Arizona', 'Phoenix', 'dog'), (5, 'Arizona', 'Phoenix', 'bird'), (6, 'Arizona', 'Phoenix', 'bird'), (7, 'Arizona', 'Phoenix', 'bird'), (8, 'Arizona', 'Flagstaff', 'dog') ) F (ID, State, City, Siting) )</code>
2番目のは異なるカウントを計算し、string_agg。を使用して一意の値を連結します。
GROUP BY
<code class="language-sql">SELECT State, City, COUNT(1) AS [# Of Sitings], STRING_AGG(Siting, ',') AS Animals FROM ( SELECT DISTINCT State, City, Siting FROM Sitings ) AS CTE_Animals GROUP BY State, City;</code>
クエリは、異なるカウントと連結値を要約するテーブルを生成します:
この効率的な手法により、広範なデータセットを扱う場合でも、正確な明確な値の連結とカウントが保証されます。 このアプローチは、連結された文字列を提供すると同時に、
の機能を効果的に複製します。以上がSQL Server で STRING_AGG を使用して個別の値を連結する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。