본문 바로가기
카테고리 없음

[Oracle/오라클] ROW_NUMBER, RANK, DENSE_RANK, RANK() WITHIN

by 홍장 2021. 7. 17.

ROW_NUMBER 중복없는 순번(랭킹) 구하기

SELECT TEST_CD, KOR, ROW_NUMBER() OVER (ORDER BY KOR DESC) AS 순위

FROM TB_GRADE_07 ORDER BY KOR DESC;

 

DENSE_RANK 같은 값이 있으면 중복 순위를 부여

SELECT TEST_CD, KOR, DENSE_RANK() OVER (ORDER BY KOR DESC) AS 순위

FROM TB_GRADE_07 ORDER BY KOR DESC;

 

RANK() WITHIN - RANK()순위 부여와 같으며, GROUP() 함수의 '필드명'의 '값'이 몇번째에 위치하는 구함

SELECT

RANK(96) WITHIN GROUP(ORDER BY KOR DESC) "96의 위치",

RANK(90) WITHIN GROUP(ORDER BY KOR DESC) "90의 위치"

FROM TB_GRADE_07;