본문 바로가기

Database

[DB]WITHIN GROUP 구문

WITHIN GROUP

WITHIN GROUP은 ORACLE에서 주로 사용되는 구문으로, LISTAGG 함수를 사용할 때 함께 사용하는 것을 많이 볼 수 있습니다. WITHIN GROUP 절은 평소에 많이 사용하지 않기 때문에 조금 생소하게 느껴질 수 있습니다.

 

WITHIN GROUP 절은 LISTAGG, RANK, DENSE_RANK 함수 등과 함께 사용할 수 있습니다.

WITHIN GROUP 절과 같이 사용할 수 있는 함수

  • LISTAGG: 그룹 내의 여러 행을 하나의 문자열로 연결합니다.
  • RANK: 그룹 내에서 순위를 매깁니다.
  • DENSE_RANK: RANK와 유사하지만 동일한 값에 대해 동일한 순위를 부여합니다.
  • PERCENTILE_CONT: 연속 분포 모델을 가정하고 백분위수 값을 계산합니다.
  • PERCENTILE_DISC: 이산 분포 모델을 가정하고 백분위수 값을 계산합니다.
  • MEDIAN: 중앙 값을 계산합니다.

 

WITHIN GROUP 절은 집계 데이터의 정렬을 지정합니다.

WITHIN GROUP (ORDER BY 컬럼 1, 컬럼 2, ...[ASC|DESC])

 

LISTAGG 함수 예제

LISTAGG 함수를 사용하여 칼럼의 문자열을 합칠 때 WITHIN GROUP 절을 사용하면 정렬이 가능합니다.

 

RANK 함수 예제

RANK 함수에 입력된 값의 순위를 WITHIN GROUP 절의 정렬 기준으로 순위를 알 수 있습니다.