오라클 11g 부터 LISTAGG 함수를 이용하여 특정 컬럼을 횡으로 아래와 같이 나열할수 있습니다.
SELECT DEPTNO, LISTAGG(ENAME,',') WITHIN GROUP (ORDER BY DEPTNO) FROM SCOTT.EMP GROUP BY DEPTNO;
--- -----------------------------------------
10 CLARK,KING,MILLER
20 ADAMS,FORD,JONES,SCOTT,SMITH
30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD
PostgreSQL 에서는 어떻게 구현해야 할까요?
scott@[local]:5432 scottdb#SQL> SELECT DEPTNO, ARRAY_TO_STRING(ARRAY_AGG(ENAME),',') FROM EMP GROUP BY DEPTNO;
--------+--------------------------------------
20 | SMITH,JONES,SCOTT,ADAMS,FORD
30 | ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES
scott@[local]:5432 scottdb#SQL>
PostgreSQL 정말 좋네요.