>데이터 베이스 >MySQL 튜토리얼 >SQL에서 GROUP BY를 기반으로 열을 연결하는 방법은 무엇입니까?

SQL에서 GROUP BY를 기반으로 열을 연결하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-14 08:14:43720검색

How to Concatenate Columns Based on GROUP BY in SQL?

SQL의 GROUP BY 문에서 열 연결

SQL에서 GROUP BY 문을 기반으로 열을 결합하거나 조인하는 일반적인 방법은 문자열 연산자와 함께 집계 함수를 사용하는 것입니다. 이를 달성하는 방법을 살펴보겠습니다.

다음 예제 테이블을 고려해보세요.

ID 用户 活动 页面URL
1 act1 ab
2 act1 cd
3 act2 xy
4 act2 st

각 사용자 및 활동 그룹의 PageURL 값을 쉼표로 구분하여 연결하려면 다음 쿼리를 사용할 수 있습니다.

SELECT [사용자], 액티비티, STUFF((SELECT ',' 페이지 URL FROM 테이블 이름 WHERE [사용자] = a. [사용자] AND 액티비티 = a. 액티비티 FOR XML PATH ('')) , 1, 1, '') AS URL 목록 FROM 테이블 이름 AS a GROUP BY [사용자], 활동

쿼리 분석:

  • [사용자], 활동, URL 목록 선택: 표시할 사용자, 활동 및 URL 목록 열을 선택합니다.
  • STUFF: PageURL 값을 단일 문자열로 연결합니다.
  • (SELECT ',' Page URL ...): 각 그룹의 PageURL 값을 추출하고 이를 쉼표로 구분하여 연결하는 하위 쿼리입니다.
  • FOR XML PATH (''): 하위 쿼리 결과를 XML 문자열로 변환합니다.
  • STUFF(... , 1, 1, ''): XML 문자열의 시작 부분에서 쉼표를 제거하고 연결된 값만 남깁니다.
  • GROUP BY [USER], ACTIVITY: 각 고유 조합에 대해 조인이 수행되도록 "사용자" 및 "활동"별로 결과를 그룹화합니다.

생성된 테이블은 원하는 레이아웃을 갖습니다.

用户 活动 URL列表
act1 ab, cd
act2 xy, st

이 접근 방식은 집계 함수와 문자열 연산의 강력한 기능을 활용하여 GROUP BY 연산을 기반으로 열 값을 효과적으로 연결하므로 다양한 데이터 조작 작업을 위한 유연한 솔루션이 됩니다.

위 내용은 SQL에서 GROUP BY를 기반으로 열을 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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