본문 바로가기
Data/DB

[MySQL] null vs 0 group by avg 차이 | LIM

by forestlim 2022. 7. 12.
728x90
반응형

mysql에서 group by 를 통해 평균을 구해야할 일이 생겼다. 문제는 원하지 않은 값, 즉 0 이 들어와서 평균을 깎아먹고 있었던 것이다.

 

예를들어서 테이블을 통해 살펴보자

이 테이블에서 height 즉 키는 다 있으므로 6명의 평균을 다 구하고 싶었고, weight는 있는 사람들 것에 대한 평균만 내고 싶었다.

하지만 이렇게 weight를 적지 않은 사람들의 몸무게를 0으로 두고 평균을 냈을 때

다음과 같은 결과가 나온다. 즉 평균 키는 구해졌지만 평균 몸무게가 0으로 적은 사람들 때문에 원하지 않는 평균 무게가 나왔다. 


이를 방지하기 위해서는 몸무게를 적지 않은 사람들의 몸무게를 0 이 아닌 null 로 변경해주면 된다. 

이렇게 null로 두고 평균을 구하면 키는 6명의 평균키, 몸무게는 4명의 평균 몸무게가 나오게 된다.

728x90
반응형

'Data > DB' 카테고리의 다른 글

[DATABASE] OLAP vs OLTP | LIM  (0) 2022.12.25
[MySQL] View 란? | LIM  (0) 2022.12.10
[MySQL] Transaction의 모든 것 | LIM  (0) 2022.05.21
Pandas DataFrame to SQL Table  (0) 2021.01.25
[pymysql] python에서 mysql 사용  (0) 2021.01.21

댓글