> 데이터 베이스 > MySQL 튜토리얼 > SQL Server의 GROUP BY 절을 사용하여 보고서 ID별로 이메일을 연결하는 방법은 무엇입니까?

SQL Server의 GROUP BY 절을 사용하여 보고서 ID별로 이메일을 연결하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-10 17:41:41
원래의
353명이 탐색했습니다.

How to Concatenate Emails by Report ID Using SQL Server's GROUP BY Clause?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿