반응형

안녕하세요! 오늘은 오라클 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 함수를 활용하여 데이터를 쉽게 그룹화하고 필요한 정보를 얻을 수 있습니다. 다양한 상황에 적용해보며 데이터를 효과적으로 다루어보세요! 

 

방문해주셔서 감사합니다. 좋은 하루 보내세요! 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기