ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

윈도우 함수 (Window Function)

 
 

SQL

 

정의

창 (Window)을 열고 그 안에서 계산합니다.

행과 행 간의 비교, 연산, 정의를 하기 위해 사용되는 함수입니다. 
일반적인 집계 함수인 GROUP BY와 달리, 행을 줄이지 않고 각 행은 그대로 둔 채 옆에 집계 결과나 순위 결과를 붙여주는 것이 특징입니다. 
여기서 윈도우(Window)란 특정 범위를 지정하는 창문과 같아서, 현재 행을 기준으로 앞뒤 몇 행까지 묶어서 계산할 수 있습니다. 
순위를 매기는 함수, 누적합이나 평균을 계산하는 함수 이전·다음 행을 참조하는 함수 등이 있습니다. 
이러한 특징 덕분에 매출의 누적 합계, 부서별 순위, 전월 대비 증감 같은 행 단위 분석 작업에 자주 활용됩니다.

 

 

 

구조

행과 행 간에 비교, 연산, 정의를 하기 위해 사용되는 함수를 의미합니다.
<윈도우 함수>(컬럼) 
OVER (
  PARTITION BY <그룹 기준>
  ORDER BY <정렬 기준>
  ROWS ... or RANGE ...
)

 

윈도우 함수: SUM, AVG, RANK, ROW_NUMBER, LAG, LEAD 등

PARTITION BY: 그룹을 나눕니다. (없으면 전체 테이블이 하나의 그룹이 됩니다.)

ORDER BY: 그룹 내에서 정렬 기준을 정해 순위나 이전/다음 행 참조할 때 사용합니다.

ROWS / RANGE: 윈도우(창)의 범위를 지정 (예: 앞 3행 ~ 현재 행까지)

 

728x90