728x90
반응형
목차
윈도우 함수란
행간의 관계에서 다양한 연산 처리를 할 수 있는 함수이다.
일반함수와 달리 중첩하여 호출 불가능하다.
종류
순위함수
- RANK, 중복 값들에 대해서 동일 순위로 표시하고, 중복 순위 다음값은 중복 개수 만큼 떨어진 순위로 출력
- DENSE_RANK, 중복 값들에 대해서 동일 순위로 표시하고, 중복 순위 다음 값에 대해서는 순차적으로 순위
- ROW_NUMBER, 중복 값들에 대해서도 순차적인 표시를 한다
집계함수
- SUM
- MAX
- MIN
- AVG
- COUNT
순서함수
- FIRST_VALUE
- LAST_VALUE
- LAG
- LEAD
비율함수
- CUME_DIST
- PERCENT_RANK
- NTILE(N), N의 숫자만큼 등분한다.
- RATIO_TO_REPORT
윈도우 함수 문법
SELECT
윈도우함수(인자) AS (PARTITION BY 컬럼 ORDER BY 컬럼)
윈도우절(ROWS|RANGE BETWEEN UNBOUND PRECEDING|CURRENT ROW AND UNBOUNDED FOLLOWING|CURRENT ROW)
FROM 테이블명;
윈도우 함수 : 다양한 윈도우 함수를 사용가능
인자 : 함수에 따라 0~n개의 인자를 사용한다.
PARTITION BY : ORDER BY에 기재한 정렬 기준에 윈도우 함수의 결과가 달라질 수 있다.
윈도우절 : 연산을 처리하는 대상이 되는 행의 범위를 지정할 수 있다.
- ROWS, 물리적인 결과행의 수
- RANGE, 논리적인 값에 의한 범위
- BETWEEN ~ AND, 행 범위의 시작과 끝을 지정하는데 사용한다.
- UNBOUNDED PRECEDING, 시작 위치가 전체 행의 첫 번째 행임을 뜻한다.
- UNBOUNDED FOLLOWING, 마지막 위치가 전체 행의 마지막 행임을 뜻한다.
- CURRENT ROW, 시작 위치가 현재 행임을 뜻한다.
728x90
반응형
'개발기록 > Oracle & SQLD' 카테고리의 다른 글
오라클 SQL 다중 행 서브쿼리 IN, ALL, ANY, SOME, EXISTS (0) | 2022.05.26 |
---|---|
SQL ROWNUM, TOP-N 사용 (0) | 2022.05.25 |
SQL 조인, INNER JOIN, NATURAL JOIN, USING, ON, CROSS JOIN, OUTER JOIN (0) | 2022.05.24 |
집계함수 / COUNT, SUM, AVG, MAX, MIN, STDDEV, VARIAN (0) | 2022.05.17 |
SQL 함수, 단일행 함수 CASE, DECODE (0) | 2022.05.17 |
댓글