저장소이야기/Oracle

[Oracle] LISTAGG

사랑꾼이야 2020. 5. 22. 13:01
반응형

doc문서.

https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions089.htm#SQLRF30030


샘플데이터 생성.

참고.(아래)

https://lovethefeel.tistory.com/13


LISTAGG.

여러 행을 하나의 컬럼으로 표현.

사용방법 1) 

부서명 전체를 한 컬럼으로 표현

// 특별한 기준이 없을 때는 ORDER BY의 NULL을 사용하면 된다.
SELECT LISTAGG(DEPARTMENT_NAME, ',') WITHIN GROUP (ORDER BY NULL) AS DEPARTMENT_NAMES
  FROM DEPARTMENTS


사용방법 2

해당 JOB별 직원의 이름을 한 컬럼으로 표현

// 기준값은 ORDER BY의 필드명을 사용하면 된다.
SELECT JOB, LISTAGG(EMPLOYEE_NAME, ',') WITHIN GROUP (ORDER BY JOB) AS EMPLOYEE_NAMES
  FROM EMPLOYEES
 GROUP BY JOB


총평.

MySQL은 group_concat으로 사용할 수 있다로 하더라. 

반응형