Study/DB

[SQL 첫걸음] 5장.집계와 서브쿼리 - 21.COUNT 이외의 집계함수

momo02 2018. 8. 31. 10:26
반응형

저자 : 아사이 아츠시

출판 : 한빛미디어



* 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;  

반응형