DB

[DB][Oracle] LISTAGG(DISTINCT ...)

오선지♬ 2025. 7. 4. 11:59
728x90
반응형

https://imswengineer.tistory.com/1301

 

[DB][Oracle] LISTAGG

LISTAGG는 Oracle DB를 포함한 SQL 데이터베이스에서 여러 행의 값을 하나의 문자열로 집계(Aggregation) 할 때사용하는 함수입니다.주로 그룹화된 데이터를 문자열로 연결할 때 유용합니다.📌 기본 문

imswengineer.tistory.com

 

 

  • 중복 제거: 기본적으로 중복 제거는 안 됨 → DISTINCT 서브쿼리로 처리해야 함

으로 작성하였는데 

 

✅ 오라클 21c 이상일 경우 LISTAGG(DISTINCT ...)도 가능

오라클 21c 이상에서는 다음과 같은 문법이 공식 지원됩니다:

LISTAGG(DISTINCT CI.EXHL_CD, ', ') WITHIN GROUP (ORDER BY CI.EXHL_CD)

하지만 오라클 12c, 19c 등에서는 위 문법은 에러가 발생하므로, DISTINCT 서브쿼리 방식이 가장 호환성이 높습니다.

728x90
반응형