ROW_NUMBER 함수
Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 57번째.
윈도우 함수는 현재 행과 관련된 테이블 행 집합에 대해 계산을 수행합니다. 일반 집계 함수와 달리 윈도우 함수는 결과를 하나의 행으로 축약하지 않습니다.
다음과 같은 작업이 필요할 때 특히 유용합니다:
- 누적 합계를 계산할 때
- 그룹 내 항목의 순위를 매길 때
- 현재 row를 이전/다음 row와 비교할 때
- 시간 기간에 따른 추세를 분석할 때
예를 들어 다음은 window 함수 사용 사례의 몇 가지 실제 예입니다:
- 판매 분석
- 각 연도(1995, 1997, 1999)까지의 누적 판매량 계산
- 각 분기의 최고 판매 제품 찾기
- 스포츠 통계
- 여러 연도에 걸쳐 올림픽 메달 수를 추적합니다
- 각 대회 기간(2000, 2004, 2008)의 선두 선수 식별
ROW_NUMBER()는 가장 간단한 윈도 함수 중 하나입니다. 결과 집합의 각 행에 고유한 순차 번호를 할당합니다. 사용 방법은 다음과 같습니다.
SELECT column1, column2,
ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;ROW_NUMBER()와 함께 OVER 절을 반드시 사용해야 합니다: ROW_NUMBER() OVER ()
예를 들어:
SELECT product_name, sale_date,
ROW_NUMBER() OVER () as row_num
FROM sales;이렇게 하면 1부터 전체 행 수까지 세는 row_num 열이 추가됩니다.
참고: OVER 절에는 번호 매기기 방식을 제어하는 정렬 및 파티셔닝 지침이 포함될 수 있습니다.
챌린지
쉬움사용 가능한 테이블과 열:
liquids:id,density
밀도가 5.677보다 큰 모든 액체를 가져오세요.
결과에 번호를 매기고(ROW_NUMBER() 함수를 사용하세요) 이 열을 row_num이라고 지정하세요.
직접 해보기
-- 윈도우 함수를 사용하여 필터링된 결과의 각 행에 번호를 매깁니다
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
11윈도 함수 1부
ROW_NUMBER 함수ORDER BY 기준PARTITION BY 기준PARTITION 및 ORDERLEAD 및 LAG 함수복습 - LEAD 및 LAG복습 - 그림복습 - 상자직접 연습해 보세요: SQL 플레이그라운드