학습 자료

윈도 함수 소개

윈도 함수는 현재 행과 관련된 행 집합 전체를 대상으로 값을 계산하면서도 결과를 한 행으로 묶지 않고 각 행을 유지하도록 해, SQL을 더욱 유용하게 만듭니다.

행을 묶어버리는 집계 함수와 달리, 윈도 함수는 각 행을 그대로 보존하면서 순위, 누계, 차이 같은 계산된 열을 추가할 수 있습니다.


윈도 함수는 어떠한 경우에 사용될까요?

전통적인 SQL만으로는 각 행을 보면서 동시에 비교하거나 순위를 매기기 어렵습니다.

윈도 함수는 다음과 같은 경우에 유용합니다.

  • 그룹 내에서 순위나 행 번호 부여
  • 이웃한 행과의 비교
  • 누적 합계나 이동 평균 계산
  • 이전/다음 행의 값 접근

행 단위의 맥락이 중요한 분석, 리포팅, 대시보드에서 특히 유용합니다.


윈도 함수 vs 집계 함수

다음 질문을 생각해봅시다.

"각 학생의 점수는 얼마이며 학급 평균과 비교하면 어떨까요?"

일반적인 GROUP BY 쿼리는 학급별 평균만 제공하고, 개별 학생 행은 유지하지 못합니다. 윈도 함수를 사용하면 같은 행에서 학생의 점수와 학급 평균을 모두 보여줄 수 있습니다.


OVER 절

윈도 함수는 OVER 절을 사용해 함수가 고려할 “윈도”—행 집합—의 범위를 정의합니다.

여기에는 다음이 포함될 수 있습니다.

  • PARTITION BY — 그룹별(예: 부서나 과목)로 계산을 다시 시작
  • ORDER BY — 순위, 누계 같은 계산을 위한 정렬 순서 지정

오른쪽의 슬라이드 자료에서 RANK(), ROW_NUMBER() 같은 예시와 OVER() 절이 동작에 어떤 영향을 주는지, 그리고 문법과 실전 예제를 확인해 보세요.

Quiz
0 / 1

How do window functions differ from aggregation functions in SQL?

Unlike aggregation functions, window functions allow you to calculate values without collapsing them into a single output.
across a set of rows related to the current row
for each individual row separately
by grouping all similar rows together
by only using the first row in a dataset

학습 자료

AI 튜터

디자인

업로드

수업 노트

즐겨찾기

도움말