문제 해석
쿼리이름과 quality = (rating/position)
poor_query_percentage =
rating이 3보다 작은 row의 개수 / 전체 개수를 구해서 %를 구하는것
포인트
두번째 rating/position는 구했으나, 세번째
case when 을 쓰려고 했으나 then 뒤에 count()함수는 못쓰는것 같았다.
=> then 1 else 0 으로 처리해서 전체를 avg로 씌워버리기. 그러면 그룹바이에 의해 query_name(Dog, Cat)으로 그룹바이했을때
3보다 작은 row의 개수/ 전체 row개수 가 구해진다.
정답
select
query_name,
round(avg(rating/position),2) as quality,
round(avg(case when rating < 3 then 1 else 0 end)*100,2) as poor_query_percentage
from Queries
group by query_name