반응형
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 |
Tags
- 코드잇TIL
- sql연습문제
- CSS
- 윈도우함수
- 다항회귀
- 유학생
- 결정트리
- 영국석사
- 코드잇
- numpy
- for반복문
- 머신러닝
- 판다스
- 코딩
- SQL
- 오늘도코드잇
- 경사하강법
- 선형회귀
- 코딩공부
- 행렬
- 나혼자코딩
- 런던
- matplotlib
- HTML
- 데이터분석
- Seaborn
- 로지스틱회귀
- 코드잇 TIL
- 코딩독학
- 파이썬
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함수 종류🔻
(SQL) 윈도우 함수 (Window Fuction) 개념 및 종류
이번 글에서는 다음 두 가지 경우에서 유용한 함수인 윈도우 함수에 대해 알아보겠습니다.1) 데이터의 행 또는 레코드에 대한 추세 또는 변화를 측정하려는 경우2) 활동 또는 우선순위에 대해 열
life-of-nomad.tistory.com
🔻(참고)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 |