개발 지식/[DBMS] Oracle

[Oracle] 데이터 그룹화(5) - LISTAGG()

devGSP 2022. 5. 26. 08:00
반응형
이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다.

Java(TM) 플랫폼 : 1.8.0_321
Oracle IDE : 4.1.5.21.78

 

LISTAGG()

 

설명

 

LISTAGG() : 그룹에 속해 있는 데이터를 가로로 나열할 때 사용하는 함수. 오라클 11g 버전부터 사용 가능

 

 

문법

 

  SELECT ...
      LISTAGG([나열할 열(필수)], [각 데이터를 구분하는 구분자(선택)])
      WITHIN GROUP(ORDER BY [나열할 열의 정렬 기준 열(선택)])
    FROM ...
   WHERE ...

 

 

사용 예시

-- query1
SELECT ENAME
  FROM EMP
 WHERE DEPTNO = 10;

-- query2
  SELECT DEPTNO, ENAME
    FROM EMP
GROUP BY DEPTNO, ENAME;

-- query3
  SELECT DEPTNO
       , LISTAGG(ENAME, ', ')
         WITHIN GROUP(ORDER BY SAL DESC) AS ENAMES
    FROM EMP
GROUP BY DEPTNO;

 

결과

 

-- query1


SELECT ENAME
  FROM EMP
 WHERE DEPTNO = 10;

gf6_q1



-- query2


  SELECT DEPTNO, ENAME
    FROM EMP
GROUP BY DEPTNO, ENAME;

gf6_q2



-- query3


  SELECT DEPTNO
       , LISTAGG(ENAME, ', ')
         WITHIN GROUP(ORDER BY SAL DESC) AS ENAMES
    FROM EMP
GROUP BY DEPTNO;

gf6_q3

반응형