본문 바로가기
개발/데이타베이스

[ORACLE] LISTAGG ... WITHIN ...

by 로그인시러 2017. 2. 6.

- GROUPING COLUMN 이 아닌 다른 컬럼 값을 한행에 나열


- LISTAGG([,]) WITHIN GROUP (ORDER BY ) [OVER (PARTION BY)]

 : OVER() 함수 사용시 GROUP BY 절 생략 가능

 : SELECT ID, 

             LISTAGG(NAME, ',') WITHIN GROUP (ORDER BY REG_DATE) 

             OVER (PARTITION BY ID) AS NAMES

    FROM TARGET_TBL;


- ORDER BY 절 생략 불가. 굳이 넣고 싶다면, (ORDER BY NULL) 같은 방법으로 ...


- 성능도 좋음 ...


참고 ) http://halloman.tistory.com/entry/LISTAGG-WITHIN-GROUP-%ED%95%A8%EC%88%98-%EB%B0%94%EB%A1%9C-%EC%95%8C%EA%B8%B0

댓글