본문 바로가기
IT/Database

[Oracle] NTILE 함수

by 성준하이 2023. 10. 28.
반응형

특정 컬럼을 기준으로 그룹을 묶을때 사용한다.

 

사용법은 아래와 같다.

 

SELECT NTILE([그룹으로 나눌 정수]) OVER (PARTITION BY [컬럼1] ORDER BY [컬럼2])
ID DATE
1 2023-01-01
2 2023-01-09
3 2023-01-03
4 2023-01-31

이런 테이블이 있다고 하고 

 

SELECT ID, DATE, NTILE(2) OVER (DATE ORDER BY DESC) AS NTILE FROM TABLE;

이렇게 해주면 date를 내림차순 하여 2개 그룹으로 묶어준다.

 

결과는 아래와 같다.

ID DATE NTILE
1 2023-01-01 1
3 2023-01-03 1
2 2023-01-09 2
4 2023-01-31 2

 

특정 값을 가지고 n개 만큼 그룹을 만들때 주로 사용이 된다.

 

만약 5개의 로우를 2그룹으로 나누거나 
101개의 로우를 100그룹으로 나누거나 등등

 

나머지가 생길 경우엔 

1 그룹부터 하나씩 더 채우게 되어  1,1,1 / 2,2

1,1 / 2 / 3 / 4 ..... / 99 / 100

으로 채워진다.

반응형

댓글