当前位置:   article > 正文

力扣刷题SQL-1211. 查询结果的质量和占比

力扣刷题SQL-1211. 查询结果的质量和占比

查询表 Queries: 

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| query_name  | varchar |
| result      | varchar |
| position    | int     |
| rating      | int     |
+-------------+---------+
此表没有主键,并可能有重复的行。
此表包含了一些从数据库中收集的查询信息。
“位置”:position列的值为 1 到 500 。
“评分”:rating列的值为 1 到 5 。评分小于 3 的查询被定义为质量很差的查询。

将查询结果的质量 quality 定义为:

各查询结果的评分与其位置之间比率的平均值

将劣质查询百分比 poor_query_percentage 为:

评分小于 3 的查询结果占全部查询结果的百分比。

编写一组 SQL 来查找每次查询的名称(query_name)、质量(quality) 和 劣质查询百分比(poor_query_percentage)。

质量(quality) 和劣质查询百分比(poor_query_percentage) 都应四舍五入到小数点后两位。

SQL架构:

  1. Create table If Not Exists Queries (query_name varchar(30), result varchar(50), position int, rating int)
  2. Truncate table Queries
  3. insert into Queries (query_name, result, position, rating) values ('Dog', 'Golden Retriever', '1', '5')
  4. insert into Queries (query_name, result, position, rating) values ('Dog', 'German Shepherd', '2', '5')
  5. insert into Queries (query_name, result, position, rating) values ('Dog', 'Mule', '200', '1')
  6. insert into Queries (query_name, result, position, rating) values ('Cat', 'Shirazi', '5', '2')
  7. insert into Queries (query_name, result, position, rating) values ('Cat', 'Siamese', '3', '3')
  8. insert into Queries (query_name, result, position, rating) values ('Cat', 'Sphynx', '7', '4')

该题考察的是对于一些函数的运用:

SUM,ROUND,COUNT,AVG

还用到了条件语句。

我的思路:

1.名字分组,分别计算需要的2个值(质量和劣质百分比)

2.质量的计算:分组后的总质量/总个数,即sum(rating/position)/count(*)

3.劣质百分比的计算:分组后的总劣质数*100/总个数,即sum(if(rating<3,1,0))*100/count(*)

4.round函数四舍五入到小数点后2位

  1. select
  2. query_name,
  3. round((sum(rating/position)/count(*)),2) quality,
  4. round(sum(if(rating<3,1,0))*100/count(*),2) poor_query_percentage
  5. from queries
  6. group by query_name

看到别人用AVG,更简洁明了:

  1. select
  2. query_name,
  3. round(avg(rating/position),2) quality,
  4. round(avg(if(rating<3,1,0))*100,2) poor_query_percentage
  5. from queries
  6. group by query_name

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/871972
推荐阅读
相关标签
  

闽ICP备14008679号