"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > SQL에서 GROUP BY를 기반으로 열을 연결하는 방법은 무엇입니까?

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

2025-01-21에 게시됨
검색:214

How to Concatenate Columns Based on GROUP BY in SQL?

SQL의 GROUP BY 문 아래 열 연결

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

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

ID사용자활동페이지 URL
1iact1ab
2i act1cd
3당신act2xy
4당신act2st

각 사용자 및 활동 그룹에 대한 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 ',' PageURL ...): 하위 쿼리를 사용하면 각 그룹의 PageURL 값을 추출하고 이를 쉼표로 구분하여 연결합니다.
  • FOR XML PATH (''): 하위 쿼리 결과를 XML 문자열로 변환합니다.
  • STUFF(... , 1, 1, ''): 는 XML 문자열의 시작 부분에서 쉼표를 제거하고 연결된 값만 남깁니다.
  • GROUP BY [USER], ACTIVITY: 각 고유 조합에 대해 조인이 수행되도록 '사용자' 및 '활동'별로 결과를 그룹화합니다.

결과 테이블은 원하는 레이아웃을 갖게 됩니다.

사용자활동URL 목록
act1ab, cd
당신act2xy, st

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

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3