데이터 사이언스 DataScience/Data Base 데이터베이스
2020. 8. 4.
[Oracle] 여러 행을 한 행으로 합치기 (LISTAGG, WM_CONCAT 차이)
1. LISTAGG 함수의 활용오라클 쿼리를 실행하다보면 같은 조건을 가진 여러 행을 하나의 행으로 합치고 싶은 경우가 발생한다. 예를 들어 그림과 같은 테이블 데이터가 있다고 했을 때, 하나의 COUNTRY_ID (국가)에 있는 도시 종류를 한 눈에 보고싶다고 가정하자. 같은 COUNTRY_ID를 GROUP BY 처리하고,그 GROUP에 해당하는 모든 행(ROW)을 한 행(ROW)으로 합쳐야한다. 이 때, 유용하게 쓸 수 있는 함수가 LISTAGG이다. SELECT COUNTRY_ID, LISTAGG(CITY,',') WITHIN GROUP (ORDER BY CITY) AS 도시목록 FROM HR.LOCATIONS GROUP BY COUNTRY_ID ORDER BY COUNTRY_ID;이 쿼리를 실행하..