초보프로그래머만..
[오라클] RANK OVER PARTITION BY
세피롯스
2011. 11. 8. 11:15
순위메길때 사용할수 있는 오라클 함수
이런 테이블 정보가 있다고 가정하고....
T_STUDENT 테이블
(유저ID) (학급) (점수)
USERID | CLASS | POINT
----------------------------
TTT | A | 90
AAA | A | 80
BBB | B | 100
CCC | A | 10
DDD | B | 40
EEE | B | 60
FFF | A | 20
select USERID,CLASS, POINT, RANK() OVER(PARTITION BY CLASS ORDER BY POINT DESC) RANK FROM T_STUDENT
사용방법은 PARTITION BY CLASS를 쓰면 학급별로 순위를 만들고
ORDER BY POINT로점수의 디센딩으로 정렬해서 순위를 매긴다
당연히 PARTITION BY를 빼면 전교생의 순위가 되겠지?
결과는 이렇게 나온다.
(유저ID) (학급) (점수)
USERID | CLASS | POINT | RANK
------------------------------------
TTT | A | 90 | 1
AAA | A | 80 | 2
FFF | A | 20 | 3
CCC | A | 10 | 4
BBB | B | 100 | 1
EEE | B | 60 | 2
DDD | B | 40 | 3