partition by

주성민·2022년 11월 15일
1
post-thumbnail

문제점

SQL 쿼리를 작성하던 중 특정 컬럼을 그룹 기준으로 순서를 두어 하나의 로우만 가져올 일이 있었다.

보통 ROW에 대한 그룹을 지을 때 Group By를 사용하는데 Group By를 사용하게 되면 그룹의 기준이 되는 컬럼만 출력이 가능하기도 하고 순위를 집계하기도 번거로워서 새로운 방법을 찾기 시작했다.

partition by

사용 방법은 다음과 같다.

select *, row_number() over (partition by {파티션 기준} order by {순서 컬럼})

나는 harvest_id라는 컬럼을 파티션 기준으로 raising_id의 순서에 따라 num를 매기도록 하였다.

그 결과 harvest_id를 파티션으로 나누어 raising_id의 순서에 따라 num 등급을 부여한 것을 확인할 수 있다.

후기

근래에 통계 관련 작업을 할 일이 많아져서 특정 기준으로 그룹화 하여 집계하는 경우가 많아 종종 사용할 것 같다.

profile
Java Dev

0개의 댓글