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

LISTAGG ... WITHIN ... ROWNUM 적용하고 싶을 때 ..

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

listagg ... within 문법상으로만은 결합하고 싶은 칼럼의 rownum 지정이 불가능하다.


그래서, subquery 로 활용이 필요하다.


예제)


select c.pid , listagg(keyword, ',') within group(order by weight desc) as keywords from PROJECT_LIST c, ( select pid, keyword, weight, ROW_NUMBER() OVER (PARTITION BY rcn ORDER BY WEIGHT desc) as rnum from KEYWORD_WEIGHT ) d where c.pid = d.pid and rnum < 10 group by c.pid

위와 같이 subquery 를 만들어서 rnum 조건을 주는 방법으로 해결가능한다.

'개발 > 데이타베이스' 카테고리의 다른 글

group by 내부정렬  (0) 2017.02.21
HAVING 절 발효(?) 타이밍  (0) 2017.02.21
[ORACLE] ROLLUP, CUBE, GROUPING  (0) 2017.02.06
[ORACLE] RANK OVER() / ROW_NUMBER() OVER()  (0) 2017.02.06
[ORACLE] LISTAGG ... WITHIN ...  (0) 2017.02.06

댓글