[ SQLD ]
2. SQL 활용
2-6. 윈도우 함수
1. 윈도우 함수
행과 행관계의 연산 SQL을 쉽게 정의하기 위해 만든 함수
SELECT WINDOW_FUNCTION (ARGUMENTS)
OVER ( [PARTITION BY 칼럼] [ORDER BY 절] [WINDOWING 절] )
FROM 테이블 명;
OVER 문구 필수
2. 순위 함수 (RANK Function)
2-1) RANK 함수
순위를 계산하는 함수 동일순위는 동일한 순위 값을 부여한다.
SELECT 상호이름,메뉴이름, 음식가격,
RANK() OVER (ORDER BY 음식가격 DESC) 비싼_랭킹
FROM 음식점;
-> 5위가 없다.
2-2) DENSE_RANK 함수
동일한 순위를 하나의 순위로 생각한다.
SELECT 상호이름,메뉴이름, 음식가격,
DENSE_RANK() OVER (ORDER BY 음식가격 DESC) 비싼_랭킹
FROM 음식점;
-> 5위가 있고 6위가 없다.
2-3) ROW_NUMBER 함수
동일한 순위라도 순위를 매긴다.
SELECT 상호이름,메뉴이름, 음식가격,
ROW_NUMBER() OVER (ORDER BY 음식가격 DESC) 비싼_랭킹
FROM 음식점;
-> 6위까지 있다.
3. 집계 함수
집계 함수 | 설명 |
COUNT | 행의 수 출력 |
SUM | 총 합계 |
AVG | 평균 |
MAX | 최댓값 |
MIN | 최솟값 |
SELECT 상호이름,메뉴이름, 음식가격,
SUM (음식가격) OVER (PARTITION BY 상호이름) 상호별합계
FROM 음식점;
-> 상호별 합계를 구하라.
4. 행 순서 함수
4-1) FIRST_VALUE 함수
처음 나오는 값을 구한다.
4-2) LAST_VALUE 함수
가장 나중에 나오는 값을 구한다.
4-3) LAG 함수
이전 몇번째 행을 가져온다
4-4) LEAD 함수
특정 위치의 행을 가져온다
SELECT 상호이름,메뉴이름, 음식가격,
LEAD(음식가격) OVER(ORDER BY 음식가격) LEAD_가격
FROM 음식점;
5. 비율 함수
5-1) RATIO_TO_REPORT 함수
파티션 내 전체 SUM(칼럼)값에 대한 행별 칼럼 값의 백분율을 소수점으로 조회
5-2) PERCENT_RANK 함수
파티션의 값 중 가장먼저 나온 것을 0 나중을 1을 기준으로 행별로 백분율 조회
5-3) CUME_DIST 함수
파티션별 윈도우의 전체건수에서 현재 행보다 작거나 같은 건수에 대한 누적백분율 조회
5-4) NTILE 함수
파티션별 전체 건수를 ARGUMENT 값으로 N 등분한 결과
'[자격증] SQLD(SQL개발자) > ↘ SQL 기본 및 활용' 카테고리의 다른 글
[ SQLD ] SQL 최적화 기본 원리 - 1. 옵티마이저와 실행계획 (0) | 2020.05.30 |
---|---|
[ SQLD ] SQL 활용 - 7. DCL (Data Control Language) (데이터 제어어) (0) | 2020.05.30 |
[ SQLD ] SQL 활용 - 5. 그룹 함수 (0) | 2020.05.30 |
[ SQLD ] SQL 활용 - 4. 서브쿼리 (Subquery) (0) | 2020.05.29 |
[ SQLD ] SQL 활용 - 3. 계층형 질의 (0) | 2020.05.29 |
댓글