> 데이터 베이스 > MySQL 튜토리얼 > SQL의 GROUP BY를 사용하여 사용자 및 활동을 기반으로 페이지 URL을 단일 쉼표로 구분된 문자열로 결합하려면 어떻게 해야 합니까?

SQL의 GROUP BY를 사용하여 사용자 및 활동을 기반으로 페이지 URL을 단일 쉼표로 구분된 문자열로 결합하려면 어떻게 해야 합니까?

Mary-Kate Olsen
풀어 주다: 2025-01-14 06:01:44
원래의
478명이 탐색했습니다.

How Can I Combine Page URLs into a Single Comma-Separated String Based on User and Activity Using SQL's GROUP BY?

SQL의 GROUP BY를 사용하여 페이지 URL 집계

데이터베이스 테이블에는 User, ActivityPageURL 열이 포함되어 있습니다. 목표는 각 고유 PageURLUser 조합에 대한 Activity 항목을 하나의 쉼표로 구분된 문자열로 통합하는 것입니다.

이는 문자열 집계 기술과 함께 GROUP BY을 사용하여 달성할 수 있습니다. 방법은 다음과 같습니다.

<code class="language-sql">SELECT
    User,
    Activity,
    STRING_AGG(PageURL, ',') AS CombinedPageURLs
FROM
    TableName
GROUP BY
    User,
    Activity;</code>
로그인 후 복사

이 쿼리는 STRING_AGG 함수(PostgreSQL, SQL Server 2017 이상 등 다양한 최신 SQL 언어에서 사용 가능)를 직접 사용하여 PageURLUser으로 정의된 각 그룹 내에서 Activity 값을 연결합니다. 결과 쉼표로 구분된 문자열이 CombinedPageURLs

에 할당됩니다.

STRING_AGG가 없는 SQL 방언의 대안:

SQL 데이터베이스가 STRING_AGG을 지원하지 않는 경우 FOR XML PATH:

를 사용하여 유사한 접근 방식을 사용할 수 있습니다.
<code class="language-sql">SELECT
    User,
    Activity,
    STUFF((
        SELECT ',' + PageURL
        FROM TableName t2
        WHERE t2.User = t1.User AND t2.Activity = t1.Activity
        FOR XML PATH('')
    ), 1, 1, '') AS CombinedPageURLs
FROM
    TableName t1
GROUP BY
    User,
    Activity;</code>
로그인 후 복사

이 대안은 FOR XML PATH('')이 포함된 하위 쿼리를 사용하여 쉼표로 구분된 문자열을 생성하고 STUFF는 선행 쉼표를 제거합니다. 이 방법은 이전 SQL Server 버전과 호환됩니다. 특정 데이터베이스 스키마와 일치하도록 테이블 및 열 이름을 조정해야 합니다. 출력에는 집계된 URL이 포함된 CombinedPageURLs 열이 제공됩니다.

위 내용은 SQL의 GROUP BY를 사용하여 사용자 및 활동을 기반으로 페이지 URL을 단일 쉼표로 구분된 문자열로 결합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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