집 >데이터 베이스 >MySQL 튜토리얼 >그룹별로 DB2에서 쉼표로 구분된 목록을 생성하는 방법은 무엇입니까?
LISTAGG를 사용하여 DB2에서 쉼표로 구분된 목록 생성
이 가이드에서는 DB2에서 다른 열로 그룹화된 열 값의 쉼표로 구분된 목록을 만드는 방법을 보여줍니다. 이를 달성하기 위해서는 LISTAGG
기능이 핵심입니다.
시나리오:
각 ID
이 여러 개의 Role
을 가질 수 있는 ID
및 Roles
열이 있는 테이블을 상상해 보세요. 목표는 각 고유 ID에 대해 쉼표로 구분된 역할 목록을 출력하는 것입니다.
예시 데이터:
ID | Role |
---|---|
4555 | 2 |
4555 | 3 |
4555 | 4 |
원하는 출력:
<code>4555, 2,3,4</code>
LISTAGG를 사용한 솔루션:
DB2의 LISTAGG
함수는 그룹 내의 값을 효율적으로 연결합니다. 구문은 다음과 같습니다.
<code class="language-sql">LISTAGG(column_name, delimiter) WITHIN GROUP (ORDER BY column_name) OVER (PARTITION BY group_column)</code>
예시 쿼리:
myTable
및 id
열이 있는 category
이라는 샘플 테이블을 사용해 보겠습니다.
<code class="language-sql">CREATE TABLE myTable (id INT, category INT); INSERT INTO myTable VALUES (1, 1); INSERT INTO myTable VALUES (2, 2); INSERT INTO myTable VALUES (5, 1); INSERT INTO myTable VALUES (3, 1); INSERT INTO myTable VALUES (4, 2);</code>
각 id
에 대해 쉼표로 구분된 category
값을 얻으려면:
<code class="language-sql">SELECT category, LISTAGG(id, ', ') WITHIN GROUP (ORDER BY id ASC) AS ids FROM myTable GROUP BY category;</code>
결과:
<code>CATEGORY | IDS ---------+----- 1 | 1, 3, 5 2 | 2, 4</code>
이 쿼리는 category
을 기준으로 행을 그룹화하고, 각 그룹 내의 id
값을 정렬한 다음 LISTAGG
을 사용하여 이를 하나의 쉼표로 구분된 문자열로 연결합니다. 결과에는 각 카테고리에 대한 쉼표로 구분된 ID 목록이 표시됩니다. 이 접근 방식은 DB2의 그룹화를 기반으로 쉼표로 구분된 목록을 생성하는 문제를 효과적으로 해결합니다.
위 내용은 그룹별로 DB2에서 쉼표로 구분된 목록을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!