SQL Server에서 고유 값 연결을 위해 STRING_AGG 사용: 실용적인 접근 방식
SQL Server의 STRING_AGG 함수는 여러 값을 단일 문자열로 연결하는 작업을 단순화합니다. 그러나 STRING_AGG를 사용하여 고유한 값을 직접 연결하려면 해결 방법이 필요합니다. 이 문서에서는 대규모 데이터 세트에서도 STRING_AGG를 사용하여 고유 값을 계산하고 연결하는 2단계 프로세스를 설명합니다.
해결책:
이 방법은 2단계 GROUP BY 접근 방식을 사용합니다.
중복 제거: 첫 번째 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>
집계 및 연결: 두 번째 GROUP BY
는 고유 개수를 계산하고 STRING_AGG를 사용하여 고유 값을 연결합니다.
<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>
결과 출력:
쿼리는 고유 개수와 연결된 값을 요약하는 테이블을 생성합니다.
State | City | # Of Sitings | Animals |
---|---|---|---|
Arizona | Flagstaff | 1 | dog |
Arizona | Phoenix | 2 | bird,dog |
Florida | Orlando | 2 | bird,dog |
이 효율적인 기술은 광범위한 데이터 세트를 처리할 때에도 정확한 고유 값 연결 및 계산을 보장합니다. 이 접근 방식은 COUNT(DISTINCT <column>)
의 기능을 효과적으로 복제하는 동시에 연결된 문자열도 제공합니다.
위 내용은 SQL Server에서 STRING_AGG를 사용하여 고유 값을 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!