Chapter 12 윈도우 함수와 그룹함수
1. SQL 내장 함수
- 단일행 내장 함수: 함수의 입력이 단일행
-> 문자형/ 숫자형/ 날짜형/ 변환형/ NULL관련, 정규식 함수
- 다중행 내장 함수
-> 집단함수: 그룹 별로 통계치
-> 윈도우 함수: 투플 별로 통계치 + PARTITION BY, 모든 투플에 각각 적용, 파티션의 모든 투플들을 리턴한다.
-> 그룹함수: 레벨 별로 통계치 제공 (그룹마다 하나의 결과 리턴)
<윈도우 함수>
- 윈도우 함수는 서브쿼리로 바꿀 수 있다.
1) 집단함수: SUM(), AVG(), COUNT(), MIN(), MAX()
2) 순위함수
- RANK():
-> 1 2 3 3 5 5 7 7 7 7 7 7 ...
- DENSE_RANK(): 동점자 처리, 순위는 이어지게한다.
-> 1 2 3 3 4 4 5 5 5 5 5 5 ...
- ROW_NUMBER()
-> 1 2 3 4 5 6 7 8 9 ...
-> 디폴트는 ROWS
- Pagination
- 파티션 별로 top-N행을 검색
3) 비율함수
- PERCECT_RANK(): 전체 투플 개수에 대한 순위의 누적 백분율 (0 ~ 1)
- CUME_DIST() (Cumulative distribution value): 순위를 기준으로 한, 투플 개수의 누적 백분율(0 ~ 1)
- NTILE(): 파티션을 N개 버킷으로 분할한다.
4) 행 순서함수
- FIRST_VALUE(), LAST_VALUE()
- LAG(), LEAD()
<그룹함수>
1) ROLLUP() 함수
- MySQL에서는 함수가 아닌 키워드로 구현
-> MySQL: GROUP BY orderYear, productLine WITH ROLLUP
-> 표준 SQL: GROUP BY ROLLUP(orderYear, productLine)
2) GROUPING()
- Super-aggrerate row에서 NULL값을 출력하는 대신 의미있는 레이블을 출력하기 위해 사용
3) CUBE()함수
- ROLLUP() 함수의 확장
- CUBE()함수의 인자는 계층 구조를 형성하지 않는다.
- MySQL은 제공하지 않는다.
본 게시글은 프로그래머스의 "학교 밖에서 듣는 전공 필수SQL/DB Essentials" 강의 내용을 토대로 업로드 했습니다.
[스터디/2기] 학교 밖에서 듣는 전공필수 SQL/DB Essentials
⏰마지막 할인 중 2기 일정이 맞지 않다면 오픈 알림 신청하고 최저가에 수강하세요! 오픈 알림 신청 개발자에게 데이터베이스를 이해하는 능력은 필수! 데이터베이스의 기본 개념부터 ERD를 읽
programmers.co.kr
https://programmers.co.kr/learn/courses/13484