티스토리 뷰

데이터를 추출하다가 partition by를 사용할 일이 생겨서 간단하게 정리.

부끄럽지만 처음 사용해보는 거라서  조금 헤맸다..

 

자세히 설명해둔 글들이 많이 있었는데 주로 이 글이 글을 참고했다.


ID   Name    Score    Subject
1    Joe      100      Math
2    Jim      99       Math
3    Tim      98       Math
4    Joe      99       History
5    Jim      100      History
6    Tim      89       History
7    Joe      80       Geography
8    Tim      100      Geography
9    Jim      99       Geography

위와 같은 데이터가 있을 때 각 subject별로 점수 순위 상위 2명까지 추출하고 싶은 경우에는 다음과 같은 쿼리를 사용하면 된다.

select * from (
SELECT Subject, Name, RANK() OVER (PARTITION BY Subject ORDER BY Score DESC) as RN
FROM Table
) a
where a.RN <= 2

 

아래는 위 쿼리의 결과

Subject        Name      Rank
Math           Joe        1
Math           Jim        2
History        Jim        1
History        Joe        2
Geography      Tim        1
Geography      Jim        2
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함