집 >데이터 베이스 >MySQL 튜토리얼 >SQL의 GROUP BY 절을 사용하여 열 값을 쉼표로 구분된 목록으로 결합하려면 어떻게 해야 합니까?
GROUP BY를 사용하여 데이터 집계: 쉼표로 구분된 목록 만들기
SQL의 GROUP BY
절은 공유 열 값을 기준으로 행을 그룹화하고 집계 함수를 적용하는 데 강력합니다. 자주 사용되는 애플리케이션은 단일 열의 값을 각 그룹에 대해 쉼표로 구분된 단일 문자열로 결합하는 것입니다.
예제 테이블을 통해 설명해 보겠습니다.
<code>ID User Activity PageURL 1 Me act1 ab 2 Me act1 cd 3 You act2 xy 4 You act2 st</code>
우리의 목표는 User
및 Activity
별로 그룹화하여 각 그룹의 PageURL
값을 연결하는 것입니다. 원하는 출력:
<code>User Activity PageURL Me act1 ab, cd You act2 xy, st</code>
STUFF()를 사용하는 SQL Server 솔루션
SQL Server에서는 GROUP BY
및 STUFF()
함수를 사용하여 이를 달성할 수 있습니다.
<code class="language-sql">SELECT [User], Activity, STUFF( (SELECT DISTINCT ',' + PageURL FROM TableName WHERE [User] = a.[User] AND Activity = a.Activity FOR XML PATH ('')) , 1, 1, '') AS URLList FROM TableName AS a GROUP BY [User], Activity</code>
설명:
GROUP BY [User], Activity
: User
및 Activity
의 고유한 조합을 기반으로 행을 그룹화합니다.SELECT
문은 각 그룹에 대해 고유한 PageURL
값을 검색합니다. ',' PageURL
은 각 URL 앞에 쉼표를 추가합니다.FOR XML PATH('')
: 결과 집합을 단일 문자열로 변환하여 효과적으로 URL을 쉼표로 연결합니다.STUFF(..., 1, 1, '')
: 하위 쿼리에 의해 추가된 선행 쉼표를 제거하여 깔끔한 쉼표로 구분된 목록을 만듭니다.결론:
이 접근 방식은 GROUP BY
절로 정의된 각 그룹 내에서 열 값을 쉼표로 구분된 목록으로 효과적으로 결합합니다. 이는 SQL Server의 데이터 요약 및 조작을 위한 다목적 기술입니다. 문자열 연결을 위한 특정 기능은 데이터베이스 시스템에 따라 약간 다를 수 있습니다(예: MySQL의 GROUP_CONCAT
).
위 내용은 SQL의 GROUP BY 절을 사용하여 열 값을 쉼표로 구분된 목록으로 결합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!