반응형
AVG()
평균 계산 시 집계된 데이터 개수가 분모이며, NULL값 제외함
이 경우 의도적으로 데이터를 누락한 상태에서 평균 계산하는 것이 아니라면, 잘못된 계산을 할 수도 있다.
예를 들어, 한 달치 데이터의 평균을 구한다고 생각해 보자.
* 한 달을 28일 기준으로, 30일 기준으로 잡는 곳도 있어서 절대적으로 한 달을 며칠이다라고 말할 수는 없다.
만약 01/01~01/31까지 쌓인 1월 데이터 기반으로 평균을 낼 때, 주말마다 데이터가 누락되어 있고 오직 평일만 데이터가 쌓여있다면? 실질적인 데이터 개수는 '한 달'이 아니다. 이런 상황에서 AVG()를 사용하면 분모가 30이 아니므로, 정확한 평균 계산이 안 나온다.
SUM()
의도적으로 누락한 상태에서 평균을 계산하는 경우가 아니라면 AVG()가 아닌, SUM()으로 평균을 구해야 한다.
"SUM() / 분모 값"으로 내가 분모 값을 직접 입력하면 된다.
다시 말해, 01/01~01/31 동안의 데이터를 모두 SUM()하고 나누기 31을 하면 (흔히 사용하는 산술평균)정확한 평균 계산을 할 수 있다.
AVG()가 맞냐, SUM()이 맞냐를 따지기 보다, 사내에서 어떤 방식으로 평균을 계산하고 있는지를 고려하고 그에 맞는 방법을 택하여 평균을 구해야 한다.
AVG()와 SUM()으로 평균 구하기의 차이를 모른다면, 의도하지 않은 방향으로 값을 산출할 수 있다는 점을 유의하자.
반응형
'SQL > MySQL' 카테고리의 다른 글
MySQL 데이터베이스 생성과 UTF8MB4 (0) | 2024.03.12 |
---|---|
MySQL Correlated Subquery 상관 서브쿼리 개념 정리 및 활용(이동 평균,누적 합 계산) (0) | 2024.03.11 |
MySQL Workbench 날짜 컬럼 데이터 타입과 날짜 형식 바꾸기 (0) | 2024.02.28 |
MySQL LENGTH, CHAR_LENGTH 함수 사용법과 예시 (1) | 2024.02.08 |
MySQL LIMIT OFFSET 사용법 예제 쉬운 정리 (0) | 2023.09.29 |