일반 형식
SELECT [PREDICATE][테이블명.]속성명 [AS 별칭][,[테이블명]속성명, ...]
[, 그룹함수(속성명)[AS 별칭]]
[, WINDOW함수 OVER (PARTITION BY 속성명1, 속성명2, ...
ORDER BY 속성명3, 속성명4, ...)[AS 별칭]]
FROM 테이블명[, 테이블명, ...]
[WHERE 조건]
[GROUP BY 속성명, 속성명, ...]
[HAVING 조건]
[ORDER BY 속성명[ASC|DESC]];
- 그룹함수 : GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 함수를 기술
- WINDOW함수 : GROUP BY절을 이용하지 않고 속성의 값을 집계할 함수를 기술
- PARTITION BY : WINDOW 함수의 적용 범위가 될 속성 지정
- ORDER BY : PARTITION 안에서 정렬 기준으로 사용할 속성을 지정
- GROUP BY절 : 특정 속성을 기준으로 그룹화 하여 검색할 때마다 사용
일반적으로 GROUP BY절은 그룹 함수와 함께 사용됨
- HAVING절 : GROUP BY와 함께 사용되며, 그룹에 대한 조건을 지정함
그룹 함수
그룹 함수는 GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 때 사용
- COUNT(속성명) : 그룹별 튜플 수를 구하는 함수
- SUM(속성명) : 그룹별 합계를 구하는 함수
- AVG(속성명) : 그룹별 평균을 구하는 함수
- MAX(속성명) : 그룹별 최대값을 구하는 함수
- MIN(속성명) : 그룹별 최소값을 구하는 함수
- STDDEV(속성명) : 그룹별 표준편차를 구하는 함수
- VARIANCE(속성명) : 그룹별 분산을 구하는 함수
- ROLLUP(속성명, 속성명, …) : 인수로 주어진 속성을 대상으로 그룹별 소계를 구하는 함수
속성의 개수가 n개이면, n+1 레벨까지, 하위 레벨에서 상위 레벨 순으로 데이터가 집계됨
- CUBE(속성명, 속성명, …) : ROLLUP과 유사한 형태지만 CUBE는 인수로 주어진 속성을 대상으로 모든 조합의 그룹별 소계 구함
속성의 개수가 n개이면 2^n 레벨까지, 상위 레벨에서 하위 레벨 순으로 데이터가 집계됨