계산 함수와 함께 각 그룹에 대해 하나의 행과 하나의 요약 정보를 생성
SELECT field_name From table_name
WHERE search_conditions
GROUP BY [ALL] aggregate_free_expression [, aggregate_free_expression...]]
[HAVING search conditions]
- GROUP BY : 선택된 테이블의 각 그룹에 대한 요약 정보를 생성
- HAVING : 결과 행들에 대해 제약을 가함, 조건에 맞지 않는 그룹들을 제외한다.
* ANSI 표준 SQL에서의 요구사항
- fields_name 에 있는 모든 컬럼들은 반드시 GROUP BY 절에 나타나야 한다.
- HAVING 에 있는 컬럼은 반드시 하나의 값을 반환해야 한다.
- HAVING 을 포함한 질의는 반드시 GROUP BY 절을 포함해야 한다.
* Transact - SQL 에서는 ANSI 표준 SQL 보다 많은 옵션을 제공한다.
- GROUP BY 절은 수식을 포함할 수 있다.
- GOURP BY ALL은 WHERE절에서 제외된 그룹까지도 포함한다.
- ALL 은 SELECT문이 WHERE절을 포함할 때만 의미가 있다.
ex)
select title_id, copies_sold = sum(qty) from sales group by title_id
select title_id, copies_sold = sum(qty) from sales
where ord_date between '1/1/1994' and '12/31/1994' group by ALL title_id