SQL 첫걸음 - 5장 COUNT 이외의 집계함수(2/5)
2020-11-01
* COUNT 이외의 집계함수
합계값 조회 : SUM ( [ALL DISTINCT] 집합 )
평균값 조회 : AVG ( [ALL DISTINCT] 집합 )
최솟값 조회 : MIN ( [ALL DISTINCT] 집합 )
최댓값 조회 : MAX ( [ALL DISTINCT] 집합 )
1. SUM으로 합계 구하기
집합의 합계를 구할 수 있음.
SUM 집계함수에 지정되는 집합은 수치형만 가능.
문자열형이나 날짜시간형의 집합에서 합계를 구할 수 X.
SUM함수도 COUNT와 마찬가지로 NULL값을 무시.
NULL값을 제거한 뒤에 합계를 냄.
2. AVG로 평균 내기
SUM집계함수로 합한 값을 개수로 나누면 평균값을 구할 수 있음.
but 굳이 SUM,COUNT함수를 이용하지 않아도 AVG라는 집계함수를 통해 평균값을 구할 수 있음.
SUM(quantity) / COUNT(quantity) = AVG(quantity)
인수 집합은 수치형만 가능, NULL값은 무시,(NULL값을 제거한 뒤 평균값 계산)
만약 NULL을 0으로 간주해서 평균을 내고 싶다면 CASE를 사용해 NULL을 0으로 변환한 뒤에 AVG함수로 계산.
( => 합계값은 변하지않지만, NULL인 행까지 행의 갯수에 포함되어 계산됨 )
SELECT AVG( CASE WHEN quantity IS NULL
THEN 0
ELSE quantity
END) AS avgnull0
FROM sample51;
3. MIN,MAX로 최솟값,최댓값 구하기
MIN함수로 최솟값, MAX함수로 최댓값을 구할 수 있음.
이들 함수는 문자열형과 날짜시간형에도 사용 가능. NULL값은 무시함.
SELECT MIN(quantity)
, MAX(quantity)
, MIN(name)
, MAX(name)
FROM sample51;
출처 : https://smilejh.tistory.com/