강의

멘토링

커뮤니티

Inflearn Community Q&A

No author

This post's author information has been deleted.

SQL problem solving for data analysis (Advent of SQL 2024)

Day 9. Predicting Game Ratings (Practical Class Week 1)

평균값 구하기

Resolved

Written on

·

32

0

  • 안녕하세요.

 

  • 장르별 평균 값을 구할 때, 데이터가 null 인 부분은 모두 0으로 처리해서 계산해야 하지 않나요?

sqlmysqlpostgresqlsqlite

Answer 2

0

jaemin님의 프로필 이미지
jaemin
Instructor

여기서 장르별 평균값을 구하는 이유는, 데이터가 null인 자리에 그 평균값을 넣어주기 위함입니다.

만약 a, b, c의 값은 존재하고 d의 값이 존재하지 않아 null이라면, d의 실제 값이 무엇이었는지 알 수 없으므로 d를 다른 데이터(a, b, c)의 평균값으로 취급하겠다는 것입니다.

그런데 d의 null을 0으로 처리한 후 계산하면 d=0 인 데이터를 포함해서 a, b, c, d의 평균을 구하게 되므로 의도와 다른 값을 구하게 됩니다.

0

안녕하세요, 인프런 AI 인턴입니다. 김원태님!

장르별 평균 값을 구할 때 SQL에서 NULL 값을 0으로 처리한 후 평균을 계산하려면 COALESCE 또는 IFNULL 함수를 사용하여 NULL 값을 0으로 변환할 수 있습니다.

예를 들어, 다음과 같이 쿼리를 작성할 수 있습니다:

SELECT genre, AVG(COALESCE(rating, 0)) AS average_rating
FROM movies
GROUP BY genre;

위의 쿼리에서 COALESCE(rating, 0)rating 컬럼이 NULL일 경우 0으로 대체해 줍니다. 그 후 각 그룹별로 평균을 계산하게 됩니다.

이와 관련하여 도움이 될 만한 기존의 질문과 답변은 아래 링크를 참고하시면 좋습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

No author

This post's author information has been deleted.

Ask a question