서론
집계함수는 COUNT
만 있는 것이 아니다.
이 챕터에서는 COUNT 이외의 집계함수에 관해 알아보겠다.
1. SUM 으로 합계 구하기
SUM
집계함수를 사용하면 집합의 합계
를 구할 수 있다.
예를 들어 '1, 2, 3'
이라는 세 개의 값을 가지는 집합이 있다고 하자.
SUM 집계함수의 인수로 이 집합을 지정하면 '1 + 2 + 3'
으로 계산하여 6
이라는 값을 반환한다.
그럼 지금부터 아래의 테이블을 사용하여 SUM 으로 합계를 구해보겠다.
SELECT SUM(quantity) FROM sample_table;
SUM 집계함수에 지정되는 집합은 수치형
뿐이다.
문자열형이나 날짜시간형의 집합에서 합계를 구할 수는 없다.
name 열은 문자열형이므로 SUM(name)과 같이 지정할 수는 없다.
한편, SUM 집계함수도 COUNT와 마찬가지로 NULL
값을 무시한다.
2. AVG 로 평균내기
AVG
집계함수를 통해 평균값
을 구할 수 있다.
SUM과 동일하게 수치형
만 계산할 수 있다.
SELECT AVG(quantity) FROM sample_table;
AVG 집계함수도 NULL
값은 무시한다.
만약 NULL을 0으로 간주해서 평균을 내고 싶다면 CASE
를 사용해 NULL을 0으로 변환한 뒤에 AVG 함수로 계산하면 된다.
SELECT AVG(CASE WHEN quantity IS NULL THEN 0 ELSE quantity END) AS avgnull FROM sample_table;
3. MIN, MAX로 최솟값, 최댓값 구하기
MIN
, MAX
집계함수를 사용해 집합에서 최솟값
과 최댓값
을 구할 수 있다.
이들 함수는 문자열형
과 날짜시간형
에도 사용할 수 있다.
다만 NULL
값을 무시하는 기본 규칙은 다른 집계 함수와 같다.
SELECT MIN(name), MAX(name), MIN(quantity), MAX(quantity) FROM sample_table;