반응형
1. 윈도우 함수
행과 행 간의 관계를 정의하기 위해서 제공되는 함수
순위, 합계, 평균, 행 위치 등을 조작할 수 있음
SELECT WINDOW_FUNCTION(ARGUMENTS)
OVER (PARTITION BY 칼럼
ORDER BY WINDOWING절)
FROM 테이블명;
- 윈도우 함수 구조
구조 | 설명 |
ARGUMENTS(인수) | 윈도우 함수에 따라서 0~N개의 인수를 설정한다. |
PARTITION BY | 전체 집합을 기준에 의해 소그룹으로 나눈다. |
ORDER BY | 어떤 항목에 대해서 정렬한다. |
WINDOWING | - 행 기준의 범위를 정한다. - ROWS는 물리적 결과의 행 수이고 RANGE는 논리적인 값에 의한 범위이다. |
- WINDOWING
구조 | 설명 |
ROWS | 부분집합인 윈도우 크기를 물리적 단위로 행의 집합을 지정한다. |
RANGE | 논리적인 주소에 의해 행 집합을 지정한다. |
BETWEEN~AND | 윈도우의 시작과 끝의 위치를 지정한다. |
UNBOUNED PRECEDING | 윈도우의 시작 위치가 첫 번째 행임을 의미한다. |
UNBOUNDED FOLLOWING | 윈도우 마지막 위치가 마지막 행임을 의미한다. |
CURRENT ROW | 윈도우 시작 위치가 현재 행임을 의미한다. |
예시
SELECT EMPNO, ENAME, SAL
SUM(SAL) OVER(ORDER BY SAL
ROWS BETWEEN UNBOUNDED PRECEDING
AND UNBOUNDED FOLLOWING) TOTSAL
FROM EMP;
2. 순위 함수
순위 함수 | 설명 |
RANK | 동일한 순위는 동일한 값이 부여된다. |
DENSE_RANK | 동일한 순위를 하나의 건수로 계산한다. |
ROW_NUMBER | 동일한 순위에 대해서 고유의 순위를 부여한다. |
SELECT ENAME, SAL,
RANK() OVER (ORDER BY SAL DESC) ALL RANK,
RANK() OVER (PARTITION BY JOB ORDER BY SAL DESC)
JOB_RANK
FROM EMP;
3. 집계 함수
집계 함수 | 설명 |
SUM | 파티션 별로 합계를 계산한다. |
AVG | 파티션 별로 평균을 계산한다. |
COUNT | 파티션 별로 행 수를 계산한다. |
MAX와 MIN | 파티션 별로 최댓값과 최솟값을 계산한다. |
반응형
'공부 > SQL' 카테고리의 다른 글
mysql 서브쿼리 limit 0, 200 에러 (2) | 2022.09.06 |
---|---|
mybatis 날짜 사이 조회 쿼리 문 (0) | 2022.07.01 |
Error 1064(42000) : you have an error in your SQL Syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at Line 4 (0) | 2022.06.28 |
Column: 'Column_Name' in where clause is ambiguous 오류 (0) | 2022.06.28 |
SQL활용 (0) | 2021.10.28 |