Oracle Window function
윈도우 함수는 분석 함수를 사용할 때 행 (Row) 의 범위를 지정 , 즉 윈도우 절 (window clause) 을 사용하는 함수들이다 . 윈도우 절은 PARTITION BY 절로 명시된 전체 그룹에서 부분 집합인 윈도우를 지정하는데 , 그 시작과 끝 범위는 BETWEEN a AND b 형태로 지정되며 , a 와 b 값에 따라 윈도우 함수가 그 계산을 수행하게 된다 . 윈도우 함수 (10g 기준 ): AVG, CORR, COVAR_POP, COVAR_SAMP, COUNT, FIRST_VALUE, LAST_VALUE, MAX, MIN, STDDEV, STDDEV_POP, STDDEV_SAMP, SUM, VAR_POP, VAR_SAMP, VARIANCE 등 구분 형식 Function(WINDOW) OVER (PARTITION BY expr ORDER BY expr [ASC | DESC] ROWS[RANGE] BETWEEN UNBOUNDED PRECEDING[CURRENT ROW] AND UNBOUNDED FOLLOWING[CURRENT ROW] ) PARTITION BY: 분석 함수가 계산을 수행하는 전체 그룹 WINDOW: 전체 그룹에서 일부분을 제외시킨 부분 그룹 혹은 부분 집합 ROWS: 부분집합인 윈도우 크기를 물리적인 단위로 행 집합을 지정 RANGE: 논리적인 주소에 의해 행 집합을 지정 BETWEEN ~ AND: 윈도우의 시작과 끝 위치를 지정 UNBOUNDED PRECEDING: 윈도우 시작 위치가 첫 번째 Row 임을 의미 UNBOUNDED FOLLOWING: 윈도우 마지막 위치가 마지막 Row 임을 의미 CURRENT ROW: 윈도우 시작 위치가 현재 Row 임을 의미 select dept, id, salary , SUM(salary)