근거 있는 일하기_SQL

WINDOW 함수_RANK

은행 다니는 하이디 2024. 5. 15. 14:35

순위를 매기고 싶다면 쓸 수 있는 함수가 몇 가지 있다. 

일단 그룹별로 뭔가 결과를 보고 싶다면 PARTITION BY 를 썼었던 그 자리에 

순위를 매기고 싶다면 ORDER BY를 꼭 넣어줘야 한다 (무엇을 기준으로 순위를 매길 건지가 필요하므로)

 

순위 매기기 함수들은 동점자를 처리하는 방식이 다른데, 아래와 같이 2등이 2명인 경우

1. RANK : 1등 2등 2등 4등

2. DENSE_RANK : 1등 2등 2등 3등

3. ROW_NUMBER : 엄밀히는 순위를 따지는 함수는 아니고 행의 번호를 쓰는것이지만 순위에도 쓰긴한다. 이건 1 2 3 4 로 차례로 나옴 (동점자 사이에서도 순서가 있음. 이 순서는 랜덤임) 

순위 매기기도 부서별로 나눠서 하고 싶다면 PARTITION BY 와 함께 쓸 수도 있다. 

부서별 급여의 합계대로 순위가 이어지고, ROW_NUMBER의 경우 부서별로 일련번호를 새로 초기화해서 1부터 써준다