PARTITION BY 기준
Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 59번째.
OVER () 절의 또 다른 옵션은 PARTITION BY입니다.
각 그룹의 행에 별도로 번호를 매길 수 있습니다
예를 들어:
| id | type |
| 132 | t1 |
| 52 | t2 |
| 92 | t1 |
| 154 | t3 |
| 198 | t1 |
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1그러면 각 type 내에서 각 항목에 번호를 매기는 열이 생성됩니다.
| id | type | row_num |
| 132 | t1 | 1 |
| 52 | t2 | 1 |
| 92 | t1 | 1 |
| 154 | t3 | 1 |
| 198 | t1 | 3 |
id 92는 type t1에서 가장 작은 id이므로 row_num 1을 가집니다.
참고: ROW_NUMBER()는 각 파티션 내에서 행에 번호를 매기는 방식을 결정하기 위해 OVER() 내에 ORDER BY 절이 필요합니다.
PARTITION BY 안에 여러 열을 지정할 수도 있습니다:
ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)챌린지
쉬움사용 가능한 테이블과 열:
doors:id,publication_yeardoors_specs:id,country,color
한 공장에서 문을 제작하고 있습니다. publication_year가 2000보다 작은 문을 country와 color의 각 조합별로 번호를 매겨야 합니다. 이 열의 이름을 row_num으로 지정하세요.
각 그룹 내에서 문은 id를 기준으로 오름차순으로 번호를 매겨야 합니다. 사양이 없는 문은 무시하세요. 최종 결과는 id를 기준으로 오름차순으로 정렬하세요.
직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
11윈도 함수 1부
ROW_NUMBER 함수ORDER BY 기준PARTITION BY 기준PARTITION 및 ORDERLEAD 및 LAG 함수복습 - LEAD 및 LAG복습 - 그림복습 - 상자직접 연습해 보세요: SQL 플레이그라운드