집계함수 : COUNT, SUM, AVG, MIN, MAX
COUNT
: COUNT(집합)
: 해당하는 집합의 행 개수를 계산한다.
: 집합 안의 NULL 값을 제외하고 처리한다.
DISTINCT
: 데이터 값의 중복을 제거하는 함수
: SELECT에 지정된 모든 열을 비교해 중복을 판단한다.
: DISTINCT 지정하지 않을 때 SELECT 디폴트 설정은 ALL
: COUNT함수의 인수에 DISTINCT 수식자를 지정해 중복을 제거한 결과를 집계할 수 있다.
SUM
: 집합의 합계를 구하는 집계함수
: 수치형 집합만 지정할 수 있다
: 집합 안의 NULL 값을 제외하고 처리한다.
AVG
: 집합의 평균값을 구하는 집계함수
: SUM()/COUNT()와 동일한 기능
: 수치형 집합만 지정할 수 있다
: 집합 안의 NULL 값을 제외하고 처리한다. NULL까지 포함하고 싶으면 CASE로 0으로 변환 후 계산
MIN, MAX
: 집합의 최소, 최대를 구하는 집계함수
: 문자열형, 날짜시간형에도 사용할 수 있다
: 집합 안의 NULL 값을 제외하고 처리한다.
내부 처리 순서
: WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
GROUP BY vs DISTINCT
: DINSTINCT는 단독으로 중복제거에 사용
: GROUP BY는 집계함수와 함께 사용하지 않는다면 무의미 = 그룹화된 집합이 집계함수 인수로 사용되기 때문
HAVING
: 집계함수를 위한 조건식
: WHERE 구가 GROUP BY보다 먼저 처리되므로 WHERE 구에서 집계함수 사용 X
: 그룹별로 집계된 열의 값이나 집계함수의 계산결과가 전달된다
: WHERE - HAVING 2단 검색 구조!
복수 열의 그룹화
: 그룹화에 사용하지 않은 열은 SELECT구에서 사용할 수 없다
: GROUP BY에 지정하지 않은 열이라면 SELECT구에서 집계함수를 사용한다.
: GROUP BY에 지정한 열이라면 SELECT구에서 그대로 사용할 수 있다.