题目来源:
leetcode题目,网址:1211. 查询结果的质量和占比 - 力扣(LeetCode)
解题思路:
首先去重,然后根据 query_name 进行分组聚合,最后按要求计算。
解题代码:
# Write your MySQL query statement below
select query_name,
round(sum(rating/position)/count(*),2) as quality,
round(count(if(rating<3,1,null))/count(*)*100,2) as poor_query_percentage
from (select distinct query_name,result,position,rating
from queries) as a
group by query_name
总结:
能运行但是效率很低。
官方题解求平均值用的是avg(),求评分小于 3 的数据条数用的是 sum(if(rating<3,1,0))。而且不知道为什么没有去重,题目里面说了可能有重复的行。