오라클 기준이며 공부하면서 외우기 위해 세세한내용 생략
대신 바로 이해할 수 있다! 내가 이해하기 쉽게 다시 정리
windowing절 공부해서 내용추가하자
윈도우함수 = 순위함수 = 분석 함수
윈도우함수란.
행과 행간의 관계를 쉽게 정의해준다
구조:
select 컬럼명, 윈도우함수 over
(partition by | order by | windowing)
1. 그룹내 순위 함수
RANK / DENSE_RANK / ROW_NUMBER
2. 그룹내 집계 함수
SUM / MAX / MIN / AVG / COUNT
3. 그룹내 행 순서 관련 함수
FIRST_VALUE / LAST_VALUE / LAG / LEAD
4. 그룹내 비율
CUME_DIST / PERCENT_RANK /NTILE / RATIO_TO_REPOST
▶ 그룹내 순위함수(RANK_1224)
▶ 그룹내 순위함수(DENSE_RANK_1223)
▶ 그룹내 순위함수(ROW_NUMBER)
▶ 그룹내 행순서 관련 함수(first_value)
: 파티션별 윈도우에서 가장 먼저 나온 값 구하기
▶ 그룹내 행순서 관련 함수(last_value)
: 파티션별 윈도우에서 가장 나중 값 구하기
▶ 그룹내 행순서 관련 함수(lag)
: 이전 몇 번째 행의 값을 가져올 수 있다.
▶ 그룹내 행순서 관련 함수(lead)
: 이후 몇 번째 행의 값을 가져올 수 있다.
▶ 그룹내 비율 관련 함수(RATIO_TO_REPORT)
: 백분율 구하기
▶ 그룹내 비율 관련 함수(PECENT_RANK)
: 제일 먼저 0 / 제일 늦게 1로 하여 행의 순서별 백분율 구한다.
▶ 그룹내 비율 관련 함수(CUME_DIST)
: 파티션 별 윈도우의 전체 건수에서 현재행보다 작거나 같은 건수에 대한 누적백분율을 구한다
: 본인의 급여가 누적 순서상 몇 번째 쯤에 위치하는지 알 수 있다
▶ 그룹내 비율 관련 함수(NTILE)
: 파티션별 전체건수를 argument 값으로 n등분한 결과를 구할 수 있다.
: 남는 숫자는 앞에서부터 채운다
▶ 그룹내 집계 관련 함수(SUM)
: 합계
▶ 그룹내 집계 관련 함수(MAX)
: 최대값
▶ 그룹내 집계 관련 함수(MIN)
: 최소값
▶ 그룹내 집계 관련 함수(AVG)
: 평균
▶ 그룹내 집계 관련 함수(COUNT)
: 갯수 세기
windowing절
: 함수의 대상이 되는 행 기준의 범위를 강력지정
row
: 부분집합인 윈도우의 크기를 물리적인 단위로 행 집합을 지정
range
: 논리적인 주소에 의해 행 집합을 지정
unbounded preceding
: 윈도우의 시작 위치가 첫 번째 row
unbounded following
: 윈도우의 마지막 위치가 마지막 row
current row
: 윈도우의 시작 위치가 마지막 row
세세한 내용은 이거 보기
http://wiki.gurubee.net/pages/viewpage.action?pageId=27427796
'개발공부 > DB' 카테고리의 다른 글
[Mysql workbench] 에러 1064 : You have an error in your SQL syntax; (2) | 2020.11.18 |
---|---|
[Mysql workbench] 1175 에러 (0) | 2020.11.12 |
[Mysql workbench] csv파일 import 오류 : Can't analyze file. Please try to change encoding type. (0) | 2020.11.12 |
[MYSQL] 컬럼 COMMENT 조회방법 (0) | 2020.10.23 |
WHERE 1 = 1 을 쓰는 이유 (1) | 2019.10.08 |