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" 강의 내용을 토대로 업로드 했습니다.
https://programmers.co.kr/learn/courses/13484
'컴퓨터 과학 > [프로그래머스] SQL DB Essentials' 카테고리의 다른 글
[6주차] 강의노트 DML (Data Manipulation Language) (0) | 2022.04.02 |
---|---|
Chapter 11 CTE와 통계 테이블 (0) | 2022.03.28 |
[5주차] 강의노트 SubQuery & DDL (0) | 2022.03.26 |
Chapter 10 DDL : 무결성 유지 메카니즘, 뷰와 데이터 사전 (0) | 2022.03.23 |
Chapter 09 DML : 서브쿼리(Subquery) (0) | 2022.03.20 |