WITH TBL1 AS(
SELECT * FROM(
SELECT '김철수' 사원명, 3000 급여 FROM DUAL UNION ALLSELECT '김영수' 사원명, 4000 급여 FROM DUAL UNION ALLSELECT '박영진' 사원명, 5000 급여 FROM DUAL UNION ALLSELECT '최영자' 사원명, 5000 급여 FROM DUAL UNION ALLSELECT '김미영' 사원명, 5500 급여 FROM DUAL UNION ALLSELECT '노진호' 사원명, 6000 급여 FROM DUAL))
SELECT 사원명, 급여,
(SELECT ㉠ FROM TBL1 TBL2 WHERE ㉡) AS 순위
FROM TBL1
ORDER BY 순위;
[실행 결과]
사원명
급여
순위
노진호
6000
1
김미영
5500
2
박영진
5000
3
최영자
5000
3
김영수
4000
5
김철수
3000
6
①
㉠ COUNT(*)
㉡ TBL2.급여 < TBL1.급여
②
㉠ COUNT(*) + 1
㉡ TBL2.급여 > TBL1.급여
③
㉠ RANK() OVER(ORDER BY TBL2.급여)
㉡ TBL1.급여 < TBL2.급여
④
㉠ DENSE_RANK() OVER(ORDER BY TBL2.급여)
㉡ TBL2.급여 > TBL1.급여