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