그룹 함수
데이터를 실제로 가져오지 않고 데이터를 요약해야 할 때 사용되는 함수
AVG()
하나의 열에 대한 평균값을 반환한다
NULL 값을 가진 행은 무시한다.
COUNT()
COUNT(*) 을 사용하면 모든 행의 개수를 세어 반환한다.
COUNT(열 이름) 을 사용하면 해당 열의 값 중 NULL 인 행을 제외하고 세어 반환한다.
MAX(), MIN()
지정한 열에서 가장 큰/작은 값을 반환한다.
열 이름을 명시해야한다.
날짜, 숫자 뿐 아니라 문자열 데이터에도 적용 가능하다.
NULL 값은 무시한다.
SUM()
지정한 열의 합을 반환한다.
여러 열에 대한 계산을 수행할 수 있다.
NULL 값은 무시한다.
그룹 함수들은 기본적으로 조건을 만족하는 모든 행에 대하여 연산을 수행하는 ALL column_name 이 설정되어 있으나, DISTINCT column_name 를 함수 내에 넣어 중복된 값을 제외하고 연산을 수행하도록 제어할 수 있다.
직접 데이터를 가져와 클라이언트 프로그램에서 계산하지 말고 DBMS를 이용하는 것이 훨씬 빠르게 결과를 가져온다.
도전 과제
OrderItems 에 있는 quantity 열을 사용해 판매 수량의 총합계를 구하여라
SELECT sum(quantity) AS total_amount FROM orderitems;
위 문장을 수정하여 BR01 항목의 총합계를 구하는 SQL 문을 작성하라.
SELECT sum(quantity) AS total_amount FROM orderitems WHERE prod_id = 'BR01';
Products 테이블에서 가격이 10 또는 그 이하 중 가장 비싼 제품의 가격을 가져오는 SQL 문을 작성하라
SELECT max(prod_price) AS max_price FROM products WHERE prod_price <= 10;
주의.
COUNT(*) 과 DISTINCT 는 같이 사용할 수 없다. (DISTINCT 는 열 이름과 같이 사용해야한다.)
참고.
일부 DBMS 에서는 DISTINCT, ALL 외에 TOP, TOP PERCENT 등 과 같은 키워드를 추가로 제공하기도 한다.