4.5 Top N 쿼리
Top N 쿼리 : 상위 N 순위까지의 데이터를 추출하는 쿼리. 기본적으로 순위함수를 통해 작성할 수 있다. 아래 테이블을 예시로 사용한다.
NAME | SCORE | CREDITS |
---|---|---|
남기은 | 3.7 | 72 |
남윤지 | 4.1 | 90 |
공은호 | 2.6 | 36 |
백준혁 | 3.5 | 120 |
박채민 | 3.6 | 54 |
권소은 | 4.2 | 18 |
안현준 | 2.9 | 39 |
고도현 | 3.7 | 84 |
ROWNUM : 현재 저장된 데이터를 그대로 두고 각 행에 순차적인 번호를 붙여주는 함수.
SELECT ROWNUM, NAME, SCORE, CREDITS
FROM STUDENT
WHERE ROWNUM <= 5;
ROWNUM | NAME | SCORE | CREDITS |
---|---|---|---|
1 | 남기은 | 3.7 | 72 |
2 | 남윤지 | 4.1 | 90 |
3 | 공은호 | 2.6 | 36 |
4 | 백준혁 | 3.5 | 120 |
5 | 박채민 | 3.6 | 54 |
윈도우함수의 순위함수로 Top N 쿼리를 작성할 수 있다.
SELECT *
FROM (SELECT RANK() OVER(ORDER BY SCORE DESC) AS RANK,
NAME,
SCORE,
CREDITS
FROM STUDENT)
WHERE D_RANK <= 5;
RANK | NAME | SCORE | CREDITS |
---|---|---|---|
1 | 권소은 | 4.2 | 18 |
2 | 남윤지 | 4.1 | 90 |
3 | 남기은 | 3.7 | 72 |
3 | 고도현 | 3.7 | 84 |
4 | 박채민 | 3.6 | 54 |
5 | 백준혁 | 3.5 | 120 |