선 조치 후 분석

[SQL] LISTAGG 함수 개념과 사용예시 본문

Solution/DB

[SQL] LISTAGG 함수 개념과 사용예시

JB1104 2023. 8. 28. 10:07
728x90
반응형
SMALL

LISTAGG

Oracle 데이터베이스에서 사용되는 집계 함수 중 하나로, 특정 칼럼의 값을 그룹으로 묶어 하나의 문자열로 합치는 기능

그룹화된 데이터를 쉽게 문자열로 만들어서 조회 가능하며, 결과를 단일 문자열 값으로 반환한다.

 

LISTAGG(column_name, delimiter) WITHIN GROUP (ORDER BY ordering_column) AS aggregated_column

 

  • column_name : 합치고자 하는 컬럼의 이름
  • delimiter : 합쳐진 값들을 구분할 구분자
  • WITHIN GROUP : ORDER BY 절과 함께 사용되며, ORDER BY 절에 지정한 표현식을 기준으로 값들을 정렬한 후에 LISTAGG 함수가 값을 결합
  • ORDER BY ordering_column : 결과 문자열의 순서를 결정하기 위한 컬럼
  • aggregated_column : 별칭

 

예시

 

employees 테이블

emp_id emp_name dept_id
101 Alice 1
102 Bob 1
103 Carol 2
104 David 2

 

'dept_id' 그룹별로 'emp_name'을 ', ' 구분자로 합쳐서 출력한다고 가정하자.

그리고 정렬은 'emp_id' 순서로 정렬한다.

SELECT dept_id, LISTAGG(emp_name, ', ') WITHIN GROUP (ORDER BY emp_id) AS employee_names
FROM employees
GROUP BY dept_id;

 

결과는 아래처럼 출력이 된다.

dept_id employee_names
1 Alice, Bob
2 Carol, David

 

LISTAGG 함수를 사용하면 그룹화된 데이터를 원하는 형식으로 문자열로 만들 수 있다.

728x90
반응형
LIST