SQL 코딩테스트 복기 - 무조건 나오는 RANK함수 무조건 외우기
1. 복기
rank() over()만 외우다 보니까 자꾸 에러가 나서
rank(over())을 할까 rank(<column>) over()을 할까... 아무리 해도 에러가 난다
rank() over(order by ~)를 외웠다면... 그냥 거저먹는 문제인데 너무 아쉽다
2. rank 함수 형태
rank() over()만 외우는게 아니라 rank() over(order by <정렬 기준>)까지 정확히 외울것
3. rank 함수 종류
rank() over(order by~)
dense_rank() over(order by~)
row_number() over(order by~)
rank() over(order by~)는 동일한 값은 동일 순위를 부여하는데 그 다음 순위는 그 개수만큼 건너 뛰고 순위를 부여
위와 같이 1,2,2 다음에 3이 아니라 4를 부여함
반면 dense_rank() over(order by ~)는 동일한 값은 중복 순위를 부여하지만 그 다음 순위는 그대로 순차적으로 부여함
1,2,2 다음 순위에 4가 아니라 3을 부여함
마지막으로 row_number() over(order by~)는 중복 순위에 관계없이 그냥 순서대로 순위를 부여함
위와 같이 중복된 값 3000 3000에도 순위가 1,2,3,4,5,6,... 순차적으로 부여된다
참고
https://m.blog.naver.com/gglee0127/221318160003
'프로그래밍 > SQL' 카테고리의 다른 글
SQL 코딩테스트 복기 - 알파벳으로 시작하는 데이터 추출하는 방법(정규표현식) (1) | 2023.03.18 |
---|---|
MYSQL에서 스키마(데이터베이스) 생성하기 (0) | 2023.01.19 |
SQL 코딩테스트 복기 -시간 데이터 다루기, 조건에 맞는 값 추출- (0) | 2023.01.08 |
SQL문 분석(코딩테스트 복기)하고 스킬 습득하기 (0) | 2022.04.22 |
코딩테스트를 위한 SQL 간단 벼락치기 (0) | 2021.11.28 |