반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 오늘도코드잇
- 코딩
- numpy
- 코드잇
- 선형회귀
- 경사하강법
- 윈도우함수
- sql연습문제
- 코딩공부
- 런던
- HTML
- 유학생
- CSS
- Seaborn
- 다항회귀
- 판다스
- 코드잇 TIL
- 코딩독학
- 머신러닝
- 파이썬
- 데이터분석
- 영국석사
- 코드잇TIL
- 결정트리
- 행렬
- 나혼자코딩
- 로지스틱회귀
- SQL
- matplotlib
- for반복문
Archives
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(SQL) 순위 윈도우(Window) 함수 Row_number, Rank, Dense rank 개념 및 구문 예시 본문
코딩공부/SQL
(SQL) 순위 윈도우(Window) 함수 Row_number, Rank, Dense rank 개념 및 구문 예시
life-of-nomad 2024. 6. 3. 10:49728x90
반응형
지난 글에서 설명드린 여러 가지 Window 함수 중 순위를 지정하는 함수인 ROW_NUMBER, RANK, DENSE_RANK에 대해 자세히 알아보겠습니다.
🔻(참고)Window함수 종류🔻
🔻(참고)PARTITION BY, OVER함수🔻
1. ROW_NUMBER()
- 동일한 값이 존재해도 각 행에 고유의 순위가 부여됩니다.
- 1) 사용하고자 하는 순위 윈도우 함수를 가장 먼저 입력(ROW_NUMBER)
- 2) ROW_NUMBER 절 뒤에는 반드시 OVER 입력
- 3) 순위를 매길 기준이 될 열 지정
- 결과를 보면 위에서부터 네 개의 행의 date_time 값이 모두 동일합니다.
- 그럼에도 각 열에는 임의로 부여한 고유의 순위가 매겨집니다.
2. RANK()
- 동일한 값들이 존재할 경우 해당 값들에 모두 같은 순위를 매기며 동일한 값들의 개수만큼 순위를 건너뛴 후에 다시 순위를 매기기 시작합니다.
- 구문은 ROW_NUMBER()과 동일합니다.
- 결과를 보면 같은 값을 갖는 행들에 동일한 순위가 부여되고 그 다음 순위가 1에서 5로 건너뜁니다.
3. DENSE_RANK()
- RANK와 같은 방식으로 동일한 값들을 처리합니다. 따라서 열에 존재하는 동일한 값들에 모두 같은 순위를 부여합니다.
- 하지만 그 값들과 다른 값이 나타나는 지점부터 바로 그 다음의 순위를 부여합니다.
- 구문은 ROW_NUMBER 및 RANK와 동일합니다.
- 결과를 보면 2017년 2월 1일에 2라는 순위가 부여되었습니다.
4. 예시
문제) orders 테이블에서 id, account_id 및 total 변수를 선택한 후 파티션을 사용해 각 계정에 대해 주문된 총 용지 양(가장 높은 것부터 낮은 것까지)의 순위를 매기는 total_rank라는 열을 만듭니다. 최종 테이블에는 이 네 개의 열이 있어야 합니다.
SELECT id, account_id, total,
RANK() OVER (PARTITION BY account_id ORDER BY total DESC) AS total_rank
FROM orders
728x90
반응형
'코딩공부 > SQL' 카테고리의 다른 글
(SQL) FULL OUTER JOIN, SELF JOIN과 비교 연산자를 사용한 JOIN 총정리 (0) | 2024.06.03 |
---|---|
(SQL) 고급 윈도우 함수 ALIASES, LAG/ LEAD, PERCENTILES (0) | 2024.06.03 |
(SQL) 주요 Window 함수인 PARTITION BY, OVER 개념 구문 및 예시 (0) | 2024.05.31 |
(SQL) 윈도우 함수 (Window Fuction) 개념 및 종류 총정리 (0) | 2024.05.31 |
(SQL) COALESCE 함수 개념 및 연습문제 (0) | 2024.05.31 |