행을 유지하면서 순위·누적값·이전 값을 계산합니다.
윈도 함수는 GROUP BY처럼 행을 합치지 않고 OVER의 partition과 order 범위에서 계산합니다. ROW_NUMBER, RANK, SUM OVER, LAG가 보고서와 분석에 자주 사용됩니다.
동점 순위 규칙과 window frame의 ROWS·RANGE 차이를 명시하고 안정적인 보조 정렬 키를 둡니다.
윈도 함수 결과는 같은 SELECT의 WHERE에서 바로 거를 수 없어 CTE나 서브쿼리 단계가 필요합니다.
OVER절을 쓰는 윈도 함수 문법은 SQLite·MariaDB·PostgreSQL 최신 버전 모두 지원하지만, 프레임(ROWS/RANGE)의 기본값은 엔진마다 미묘하게 다를 수 있습니다.
ORDER BY 없는 ROW_NUMBER 결과 순서는 업무 의미가 없습니다.
직접 바꿔보세요부서별 급여 순위와 누적 급여를 계산하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.