COUNT 이외의 집계함수

유석현(SeokHyun Yu)·2022년 8월 11일
0

SQL

목록 보기
21/45
post-thumbnail

서론

집계함수는 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;

profile
Backend Engineer

0개의 댓글