언어

집계함수 안에 IF문 넣기

땅호720 2024. 1. 30. 10:45

어쩌다 보니 시리즈물

2024.01.29 - [언어] - AVG 안에 IF문 넣기

# Write your MySQL query statement below
select query_name,
    round(avg(rating / position),2) quality,
    # round(count(if(rating<3,1,null))/ count(*) * 100,2) poor_query_percentage
    round(avg(if(rating<3,1,0)) * 100,2) poor_query_percentage
from Queries
where query_name is not null
group by query_name

 

count를 넣었을 때는 False인 경우 null로 처리해주어야 평균이 계산되었다. 0인 경우에는 100%가 되는 문제 발생..!!

0도 정수기 때문에 카운트가 되므로 원하는 결과를 얻을 수 없다

 

하지만 avg을 사용할 때는 null인 경우에는 계산할 수 없고 (null로 나누기 불가능), 0으로 넣어주어야 총합 (분모)에서 카운트가 되지 않게 되므로 원하는 결과를 얻을 수 이따!