[개발] 프로그램 지식

[오라클] LISTAGG (리스트에그) 함수 사용하는 방법 _ 중복제거 및 정렬, 컬럼합치기

  • -
반응형
LISTAGG 함수 사용 형태

LISTAGG(   [합칠 컬럼명], [구분자]    ) WITHIN GROUP (  ORDER BY [ 정렬 컬럼명 ]   )

 

 

LISTAGG ( ) 함수는 "" 그룹 함수 "" 이기때문에

GROUP BY[그룹바이] 또는 PARTITION BY[파티션 바이[ 절과 함께 사용해야 합니다.

 

 

 

기존의 WM_CONCAT 함수는 DISTINCT(중복제거)를 사용할 수 있으나,

LISTAGG함수는 사용할 수 없다고 하네요.

 

 

 

 

예시
SELECT LISTAGG( 컬럼명, ',') WITHIN GROUP(ORDER BY 컬럼명) AS 대체명
  FROM TEST
 WHERE 색종류 IN ('빨강', '파랑')​

 

 

 

SELECT 색종류, LISTAGG( 컬럼명, ',') WITHIN GROUP(ORDER BY 컬럼명) AS 대체명
  FROM TEST
 WHERE 색종류 IN ('빨강', '파랑')
 GROUP BY 색종류

 

 

 

 

SELECT 컬럼명
	   , 색종류
       , LISTAGG( 컬럼명, ',') WITHIN GROUP(ORDER BY 컬럼명) OVER ( PARTITION BY 색종류 ) AS 대체명
  FROM TEST
 WHERE 색종류 IN ('빨강', '파랑')​

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.