반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- kafka
- sqld
- jdbc
- Javascript
- db
- DIP
- 스프링 부트 입문
- 스프링 프레임워크
- assertThrows
- JPA
- thymeleaf
- mybatis
- SQL
- 스프링
- @Configuration
- 필드 주입
- 스프링 컨테이너
- Effective Java
- 스프링 부트 기본
- 스프링 빈
- springboot
- DI
- 싱글톤
- java
- resultMap
- spring
- 생성자 주입
- assertThat
- 스프링 부트
- 스프링부트
Archives
- Today
- Total
선 조치 후 분석
[SQL] LISTAGG 함수 개념과 사용예시 본문
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
'Solution > DB' 카테고리의 다른 글
[ORACLE] 시노님(SYNONYM)이란? 장점은? (0) | 2023.09.12 |
---|---|
[ORACLE] COALESCE vs NVL 개념 및 차이점 (0) | 2023.08.28 |
DB GRANT, REVOKE 권한 개념 [Specified schema object was not found. ] (0) | 2023.08.28 |
CHAR vs VARCHAR 차이점은? (0) | 2023.08.25 |
[ORACLE] PL/SQL그리고 CURSOR (0) | 2023.06.29 |