DB(Oracle, Mysql 등)

오라클 rank()

하루에 2%만 벌자 2019. 12. 23. 17:08
반응형

 

가입자 수가 많은 순위 부여

 

SELECT NDAS_UPJONG_CD

, COUNT(*) AS CNT

, RANK() OVER (ORDER BY COUNT(*) DESC) AS RK

FROM TB_PREF_MASTER

WHERE CNTRCTWIRE_STATUS_SEC = '04'

GROUP BY NDAS_UPJONG_CD

 

위의 결과는 다음과 같다.

순위가 같을 경우 101에서 103 으로 랭킹을 부여한다.

 

 

 

RANK() 대신 DENSE_RANK()를 사용할 경우 중복된 수와 무관하게 RANK를 부여하다.

 

 

SELECT NDAS_UPJONG_CD

, COUNT(*) AS CNT

, DENSE_RANK() OVER (ORDER BY COUNT(*) DESC) AS RK

FROM TB_PREF_MASTER

WHERE CNTRCTWIRE_STATUS_SEC = '04'

GROUP BY NDAS_UPJONG_CD

 

 

반응형