>데이터 베이스 >MySQL 튜토리얼 >SQL Server의 GROUP BY를 사용하여 고유 값을 쉼표로 구분된 문자열로 연결하는 방법은 무엇입니까?

SQL Server의 GROUP BY를 사용하여 고유 값을 쉼표로 구분된 문자열로 연결하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-10 17:47:42204검색

How to Concatenate Unique Values into a Comma-Separated String Using SQL Server's GROUP BY?

SQL Server의 GROUP BY를 사용하여 고유 값을 쉼표로 구분된 목록으로 집계

도전:
중복 항목이 있는 테이블이 있는 경우 목표는 특정 열을 기준으로 데이터를 그룹화하고 다른 열의 고유 값을 쉼표로 구분된 단일 문자열로 통합하는 것입니다.

샘플 데이터:

다음 표는 초기 데이터 세트를 보여줍니다.

ID ReportId Email
1 1 [email protected]
2 2 [email protected]
3 1 [email protected]
4 3 [email protected]
5 3 [email protected]

목표 결과:

원하는 결과는 통합 이메일 주소가 포함된 테이블입니다.

ReportId Email
1 [email protected], [email protected]
2 [email protected]
3 [email protected], [email protected]

GROUP BY 및 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>

자세한 설명:

핵심 논리에는 STUFF 함수 내의 하위 쿼리가 포함됩니다. 이 하위 쿼리는 외부 쿼리의 현재 행과 동일한 ReportId을 공유하는 모든 행을 반복합니다. 일치하는 각 행에 대해 누적 문자열에 쉼표와 Email 값을 추가합니다. 그런 다음 외부 쿼리는 GROUP BY을 사용하여 각 고유 ReportId에 대해 연결된 이메일 문자열을 집계합니다. STUFF 함수는 첫 번째 쉼표와 공백을 제거합니다.

위 내용은 SQL Server의 GROUP BY를 사용하여 고유 값을 쉼표로 구분된 문자열로 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.