MinChur

SQL 마스터 가이드 (3): 윈도우 함수와 고급 분석 연산

|
1 min read

윈도우 함수(Window Function)는 행과 행 사이의 관계를 정의하고 순위, 비율, 이동 평균 등을 계산할 때 사용합니다.

1. 윈도우 함수의 기본 구조

윈도우 함수는

text
OVER
절을 반드시 동반하며, 집계 결과가 단일 행으로 줄어들지 않고 원본 행의 개수를 유지한다는 특징이 있습니다.

sql
SELECT 함수(컬럼) OVER (PARTITION BY ... ORDER BY ... WINDOWING 절)

2. 순위와 비율 함수

  • RANK / DENSE_RANK / ROW_NUMBER: 중복 순위 처리 방식에 따라 나뉘는 순위 함수들입니다.
  • PERCENT_RANK / CUME_DIST: 백분율 순위와 누적 분포를 계산합니다.
  • NTILE: 전체 데이터를 N개의 그룹으로 균등하게 나눕니다.
  • RATIO_TO_REPORT: 그룹 내 전체 합계 대비 현재 행의 비율을 구합니다.

3. 행 순서와 집계 함수

  • LAG / LEAD: 현재 행을 기준으로 이전(
    text
    LAG
    ) 또는 다음(
    text
    LEAD
    ) 행의 값을 가져옵니다. 추이 분석에 필수적입니다.
  • FIRST_VALUE / LAST_VALUE: 윈도우 범위 내에서 가장 첫 번째 값이나 마지막 값을 가져옵니다.
  • 집계 윈도우 함수:
    text
    SUM
    ,
    text
    AVG
    ,
    text
    MAX
    ,
    text
    MIN
    ,
    text
    COUNT
    등을
    text
    OVER
    절과 함께 사용하여 누적 합계나 이동 평균을 계산할 수 있습니다.