반응형
안녕하세요! 오늘은 오라클 SQL에서 LISTAGG 함수는 여러 행의 값을 결합하여 하나의 문자열로 만들어주는 강력한 기능을 제공합니다. 이 함수를 사용하여 특정 조건에 따라 데이터를 그룹화하고 원하는 형식으로 표현할 수 있습니다.
데이터 모델 소개
이 예제에서는 다음과 같은 테이블을 사용합니다.
- Orders 테이블: 주문 정보를 저장하는 테이블
- Products 테이블: 제품 정보를 저장하는 테이블
문제 상황
주문 정보에는 여러 제품이 포함되어 있습니다. 특정 주문의 제품을 쉼표로 구분된 문자열로 표현하고 싶습니다.
해결 방법
오라클의 LISTAGG 함수를 사용하여 주문 정보를 그룹화할 수 있습니다. 아래는 간단한 쿼리 예제입니다.
SELECT o.order_id AS "주문번호",
LISTAGG(p.product_name, ', ') WITHIN GROUP (ORDER BY p.product_id) AS "주문제품"
FROM Orders o
JOIN Products p ON o.product_id = p.product_id
GROUP BY o.order_id;
이 쿼리는 Orders 테이블과 Products 테이블을 조인하고, LISTAGG 함수를 사용하여 각 주문에 대한 제품을 쉼표로 구분된 문자열로 표현합니다.
결과 예시
주문번호 | 주문제품 |
1 | 제품A, 제품B |
2 | 제품B, 제품C, 제품D |
3 | 제품A, 제품D, 제품E |
이렇게 함으로써 LISTAGG 함수를 사용하여 데이터를 그룹화하고 보다 의미 있는 형태로 표현할 수 있습니다.
LISTAGG 함수를 활용하여 데이터를 쉽게 그룹화하고 필요한 정보를 얻을 수 있습니다. 다양한 상황에 적용해보며 데이터를 효과적으로 다루어보세요!
방문해주셔서 감사합니다. 좋은 하루 보내세요!
반응형
'데이터베이스 > 데이터베이스 함수' 카테고리의 다른 글
[데이터베이스] 오라클 에러별 정리 (0) | 2023.11.27 |
---|---|
[SQL] Oracle에서 VARCHAR2와 CHAR의 문자열 바이트 크기 비교 (0) | 2023.11.24 |
[SQL] DECODE와 CASE문의 활용 예시와 결과 분석 (0) | 2023.05.26 |
[SQL] NVL, || 활용 하기 (0) | 2023.05.24 |
[SQL] PL/SQL을 사용한 저장 프로시저 실행 방법 (0) | 2023.05.23 |
최근댓글