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)

995EE9445B8897CF29 99B12D4C5B8897E02D

인수 집합은 수치형만 가능, 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;  

996FD34B5B88986F34

출처 : https://smilejh.tistory.com/