SQL의 GROUP BY를 사용하여 페이지 URL 집계
데이터베이스 테이블에는 User
, Activity
및 PageURL
열이 포함되어 있습니다. 목표는 각 고유 PageURL
및 User
조합에 대한 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 언어에서 사용 가능)를 직접 사용하여 PageURL
및 User
으로 정의된 각 그룹 내에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!