1. 순위는 구하되 같은 값의 순서는 무시하는 방법
ROW_NUMBER() OVER(ORDER BY 정렬할 필드)
100, 90, 90, 80, 80, 80, 70, 60의 값이 있을 때 순위는 1, 2, 3, 4, 5, 6, 7, 8 이 된다.
2. 같은 값은 동등한 순위로 매기는 방법
RANK() OVER(ORDER BY 정렬할 필드)
100, 90, 90, 80, 80, 80, 70, 60의 값이 있을 때 순위는 1, 2, 2, 4, 4, 4, 7, 8 이 된다.
3. 같은 값은 동등한 순위로 매기지만 다음 순위가 순차적으로 매겨지는 방법
DENSE_RANK() OVER(ORDER BY 정렬할 필드)
100, 90, 90, 80, 80, 80, 70, 60의 값이 있을 때 순위는 1, 2, 2, 3, 3, 3, 4, 5 가 된다.
4. 그룹별 순위 구하기 예제
ROW_NUMBER() OVER(PARTITION BY 그룹화할 필드 ORDER BY 정렬할 필드)
ex) ROW_NUMBER() OVER(PARTITION BY A ORDER BY A, B) RNUM, A, B
FROM(
SELECT '가족' A, '아버지' B FROM DUAL
UNION
SELECT '가족' A, '어머니' B FROM DUAL
UNION
SELECT '가족' A, '형' B FROM DUAL
UNION
SELECT '가족' A, '누나' B FROM DUAL
UNION
SELECT '친척' A, '삼촌' B FROM DUAL
UNION
SELECT '친척' A, '이모' B FROM DUAL
ORDER BY A, B)
'개발 & 코딩 > Oracle' 카테고리의 다른 글
오라클 특정문자 위치 구하기 (0) | 2021.04.11 |
---|---|
오라클 DB 칼럼 설정 (Oracle DB Column Setup) (0) | 2021.04.11 |
오라클 DB 비밀번호 대소문자 구분 (0) | 2021.04.11 |
오라클 비밀번호 만료 해제 (Oracle Password expiration clear) (1) | 2021.04.11 |
오라클 DB 비밀번호 분실시 초기화 (Oracle Password initialization) (0) | 2021.04.11 |