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

SQL에서 GROUP BY를 사용하여 열 값을 연결하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-14 09:46:43
원래의
816명이 탐색했습니다.

How to Concatenate Column Values with GROUP BY in SQL?

SQL의 GROUP BY 문을 사용하여 열 값 조인

다음 데이터가 포함된 테이블이 있다고 가정해 보겠습니다.

<code>ID | 用户 | 活动 | 页面URL
1 | 我 | act1 | ab
2 | 我 | act1 | cd
3 | 你 | act2 | xy
4 | 你 | act2 | st</code>
로그인 후 복사

사용자활동별로 데이터를 그룹화하고 각 그룹의 페이지 URL 열 값을 단일 쉼표로 결합하려고 합니다. 분리된 문자열. 원하는 출력은 다음과 같습니다.

<code>用户 | 活动 | 页面URL
我 | act1 | ab, cd
你 | act2 | xy, st</code>
로그인 후 복사

GROUP BY 쿼리를 사용하여 이 조인을 수행하려면 GROUP BY 절의 하위 쿼리와 함께 STUFF() 함수를 사용할 수 있습니다. 자세한 내용은 다음과 같습니다.

<code class="language-sql">SELECT
    [用户], 活动,
    STUFF(
        (SELECT DISTINCT ',' + 页面URL
         FROM 表名称
         WHERE [用户] = a.[用户] AND 活动 = a.活动
         FOR XML PATH (''))
         , 1, 1, '')  AS URL列表
FROM 表名称 AS a
GROUP BY [用户], 活动</code>
로그인 후 복사
  • SELECT: 필수 열인 사용자, 활동 및 연결된 페이지 URL 값을 URL .
  • STUFF(): 이 함수는 수정할 문자열, 시작 위치, 삭제할 문자 수, 삽입할 문자열의 세 가지 매개 변수를 허용합니다. 이 경우 첫 번째 문자(쉼표)를 제거하고 연결된 페이지 URL 값을 수정된 문자열에 삽입합니다.
  • FOR XML PATH('')의 하위 쿼리: 이 하위 쿼리는 사용자활동 🎜>페이지 URL 가치. FOR XML PATH('') 절을 사용하여 값을 연결하여 단일 문자열을 반환합니다. a.[User] AND Activity = a.Activity:
  • 이 섹션에서는 하위 쿼리가 현재 처리 중인 그룹에 속하는
  • 페이지 URL 값만 검색하도록 합니다. GROUP BY:
  • 데이터를
  • 사용자활동별로 그룹화하여 각 그룹의 페이지 URL 값을 집계합니다. 이 쿼리를 실행하면 각 고유
  • 사용자

활동 조합에 대한 페이지 URL 값이 함께 병합되고 쉼표로 구분됩니다.

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

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