기록과 정리

집계함수(COUNT/SUM/AVG/MIN/MAX) 본문

IT/DB

집계함수(COUNT/SUM/AVG/MIN/MAX)

zepetto 2021. 8. 22. 20:19

이 글은 '[백문이불여일타] 데이터 분석을 위한 중급 SQL' 강의를 참고하였습니다.

https://www.inflearn.com/course/%EB%B0%B1%EB%AC%B8%EC%9D%B4%EB%B6%88%EC%97%AC%EC%9D%BC%ED%83%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B8%B0%EC%B4%88-sql/lecture/29718?tab=note 

 

[백문이불여일타] 데이터 분석을 위한 기초 SQL - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

데이터를 가져올 때, select로 출력이 가능하지만 소규모가 아닌 대규모 데이터 set을 가져올 때에는 해당 데이터의 합계, 평균, 최대, 최소값을 뽑을 필요가 있다.

 

COUNT 

Count 와 결과

 COUNT 함수는 Row의 개수를 세어준다. ( 단, Null 값을 제외하여 세어준다. ) 또한 DISTINCT와 같이 사용할 경우 , 중복된 항목을 제외하고 값의 개수를 가져온다.

 

SUM/AVG

다음과 같이 Products라는 테이블이 있을 경우, 가격의 합을 알고 싶을때 SUM, 평균을 알고 싶을 경우 AVG 함수를 사용한다.

SUM
AVG

COUNT 에서 null이 체크가 안되었던 것 처럼 AVG도 null의 영향을 가진다. 특정 컬럼이 null을 포함하고 있으면 해당 데이터가 존재하지 않는 것으로 판단하여 포함하지 않으므로 주의하도록 하자. 단순 AVG보다 SUM(컬럼)/COUNT(*)으로 하면 COUNT(*) 자체는 로우를 보고 판단하기 때문에 위 문제는 해결이 될 수 있다.

 

MAX/MIN

최대와 최소를 구하는 함수.  

 

MAX
MIN

사실 집계함수만 쓰기 보다, GROUP BY 를 통한 데이터 요약을 통해 집계함수를 사용한다. 집계함수만 사용하게 되면 row만 몇만건인 데이터의 합이나 최대값을 구할때 부하나 속도 측면에서 좋지 않기 때문이다. GROUP BY 및 HAVING에 대한 학습도 같이하도록 하자.