力扣1121.查询结果的质量和占比

https://leetcode.cn/problems/queries-quality-and-percentage/

一,题目介绍

二,建表语句如下

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

三,解题思路如下

  1. 理解查询目标

    首先,需要理解查询的目的,即计算每个查询的平均质量(quality)和低质量查询的百分比(poor_query_percentage)。

  2. 分析表结构

    了解queries表的结构,特别是query_nameratingposition字段的含义和数据类型。

  3. 处理NULL值

    确定是否需要处理NULL值,以及如何处理。在本例中,WHERE子句已经排除了query_nameNULL的记录。

  4. 计算平均质量

    计算每个查询的平均质量,即评分(rating)与位置(position)的比值。这需要使用AVG函数来计算平均值,并使用ROUND函数来限制小数点后的位数。

  5. 计算低质量查询的百分比

    确定评分低于3的查询为低质量查询。使用CASE WHEN语句来为评分低于3的查询分配1,否则分配0,然后计算这些1的平均值,即低质量查询的百分比。

四,答案如下:

select
    query_name as   query_name ,
    round(avg(rating/position),2) as  quality,
    round(avg(rating<3)*100,2) as poor_query_percentage
from queries
group by query_name;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值