力扣高频SQL 50题(基础版)第十九题

news2024/11/24 7:34:20

文章目录

  • 力扣高频SQL 50题(基础版)第十九题
    • 1211. 查询结果的质量和占比
      • 题目说明
      • 思路分析
      • 实现过程
        • 准备数据
        • 实现方式
        • 结果截图

力扣高频SQL 50题(基础版)第十九题

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 的查询结果占全部查询结果的百分比。

编写解决方案,找出每次的 query_namequalitypoor_query_percentage

qualitypoor_query_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')
实现方式
# 方法一:
with t1 as (
    select
        query_name,
        count(*) AS total_count, -- 计算每个query_name的总数
        sum(case when rating < 3 then 1 else 0 end) as poor_count -- 计算rating小于3的查询数
    from
        Queries
    group by
        query_name
),
t2 as (
    select
        query_name,
        sum(rating * 1.0 / position) as total_quality
    from
        Queries
    group by
        query_name
)
select
    q.query_name,
    round(t2.total_quality / t1.total_count, 2) as quality, -- 计算平均质量
    ROUND(t1.poor_count * 100 / t1.total_count, 2) as poor_query_percentage -- 计算劣质查询百分比
from
    Queries q
join
    t1 on q.query_name = t1.query_name
join
    t2 on q.query_name = t2.query_name
group by
    q.query_name, t1.total_count, t1.poor_count, t2.total_quality;
#方法二
WITH t1 AS (    
    SELECT     
        query_name,    
        COUNT(*) AS total_count, -- 计算每个query_name的总数    
        SUM(CASE WHEN rating < 3 THEN 1 ELSE 0 END) AS poor_count -- 计算rating小于3的查询数    
    FROM     
        Queries    
    GROUP BY     
        query_name    
),    
t2 AS (    
    SELECT     
        query_name,    
        SUM(rating * 1.0 / position) AS total_quality    
    FROM     
        Queries    
    GROUP BY     
        query_name    
)    
SELECT     
    t1.query_name,    
    ROUND(t2.total_quality / t1.total_count, 2) AS quality, -- 计算平均质量    
    ROUND(t1.poor_count * 100 / t1.total_count, 2) AS poor_query_percentage -- 计算劣质查询百分比    
FROM     
    t1    
JOIN     
    t2 ON t1.query_name = t2.query_name;
结果截图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1953245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习c语言第十五天(初阶测评)

选择题 1.下列程序输出结果为 67 2.下列程序输出结果为 死循环打印 3.i 和j的值分别为什么 2 1 4.k的终值是什么 90 5.输出结果是什么 1 6.正确的是 C 7. C语言规定main函数位置 C 8.不正确的是 D 9.正确的是 c 库函数独立c语言之外 10…

comsol在静水压力下的地应力平衡

comsol在静水压力下的地应力平衡 条件: 水深3m,粗砂层厚度10m,模型长度100m土体的饱和密度1950kg/m3水的密度1000kg/m3浮重度 γ ′ = γ s a t − γ w \gamma=\gamma_{sat}-\gamma_w γ

GD32 PWM输入捕获

前言 通过本次的学习&#xff0c;了解定时器的分类和配置&#xff0c;高级定时器&#xff0c;通用定时器等不同等级的定时器拥有的功能&#xff0c;学习定时器的输入捕获与输出比较功能&#xff08;PWM&#xff09;脉冲宽度调制&#xff0c;来控制电机等外设。 定义 定时器的分…

Pytorch学习笔记——在GPU上进行训练

文章目录 1. 环境准备2. 导入必要库3. 加载数据集4. 定义简单的神经网络模型5. 检查和设置GPU设备6. 定义损失函数和优化器7. 训练模型8. 全部代码展示及运行结果 1. 环境准备 首先&#xff0c;确保PyTorch已经安装&#xff0c;且CUDA&#xff08;NVIDIA的并行计算平台和编程模…

go-kratos 学习笔记(6) 数据库gorm使用

数据库是项目的核心&#xff0c;数据库的链接数据是data层的操作&#xff0c;选择了比较简单好用的gorm作为数据库的工具&#xff1b;之前是PHP开发&#xff0c;各种框架都是orm的操作&#xff1b;gorm还是很相似的&#xff0c;使用起来比较顺手 go-kratos官网的实例是ent&…

鸿蒙UI系统组件10——菜单(Menu)

果你也对鸿蒙开发感兴趣&#xff0c;加入“Harmony自习室”吧&#xff01;扫描下面名片&#xff0c;关注公众号。 Menu是菜单接口&#xff0c;一般用于鼠标右键弹窗、点击弹窗等。 1、创建默认样式的菜单 菜单需要调用bindMenu接口来实现。bindMenu响应绑定组件的点击事件&am…

ModuleNotFoundError: No module named ‘py3langid‘ 以及如何将包安在虚拟环境下

前提&#xff1a;已经安装过改包&#xff08;pip install py3langid&#xff09;&#xff0c;但仍报错 原因&#xff1a;安装在其他目录下了 解决办法&#xff1a; 1、再次在终端输入pip install py3langid 显示安装位置 Requirement already satisfied: py3langid in c:\…

css大屏设置中间元素四周渐变透明效果

css大屏设置中间元素四周渐变透明效果 四周透明效果&#xff1a; // 设置蒙版上下左右渐变显示mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 10%, rgba(0, 0, 0, 1) 90%, rgba(0, 0, 0, 0) 100%),linear-gradient(to bottom, rgba(0, 0, 0…

性能测试的指标及流程

性能测试指标 相应时间 并发数 吞吐量&#xff1a; 点击数 错误率 资源使用率 所有的东西是存在磁盘里的&#xff0c;在代码运行的时候会将磁盘的东西读取到内存里&#xff0c;磁盘IO和网络都是衡量速度&#xff0c;在任务管理器可查看资源使用率 题&#xff1a; 答案&#xf…

创建vue3项目,以及使用示例

1.在根目录下cmd&#xff1a;vue create myobj&#xff08;没有切换淘宝镜像记得切换&#xff0c;这样创建项目运行快&#xff09; 2. 3.(按空格键选中&#xff0c;选好回撤就到下一步了) 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.然后输入执行以下两步就已经运行项目了 以…

Java算法之递归算法-如何计算阶乘的值

上一篇学了递归之后&#xff0c;练习一下递归算法。 题目&#xff1a;使用递归算法计算阶乘的值&#xff0c;也就是5&#xff01;5*4*3*2*1&#xff0c;直接使用循环是非常简单的&#xff0c;这边练习一下递归算法。 先写一下两个条件 基线条件&#xff1a;等于1的时候返回1…

windows下实现mongodb备份还原

添加环境变量 把mongodb安装目录下的bin路径添加到环境变量的path路径: 备份库 打开CMD&#xff0c;执行以下命令&#xff1a; mongodump -u test -p test -d test -o D://backup_mongodb//20220706 –gzip 参数说明&#xff1a; -u 用户名 -p 密码 -d 需要备份的库名称…

GraphHopper路劲规划导航(Android源码调试运行)

本文主要记录在运行graphhopper安卓版路径规划导航源码的步骤和遇到的问题。 成功运行了程序&#xff0c;但是路劲规划一直不成功&#xff0c;问题一开始是服务地址&#xff0c;后来又是key的问题&#xff0c;在这个项目中涉及到了graphhopper、mapbox、mapilion的key&#xff…

map、foreach、filter这些方法你还不知道什么时候该用哪个吗?那就看过来

forEach&#xff1a;‌主要用于遍历数组并对每个元素执行某种操作&#xff0c;‌通常用于改变当前数组里的值。‌它不会返回新数组&#xff0c;‌而是直接在原数组上进行操作。‌forEach方法不支持return、‌break、‌continue等语句&#xff0c;‌因为这些语句在forEach中不会…

多线程实例-线程池

线程池&#xff0c;就是把线程提前从系统中申请好&#xff0c;放到一个地方&#xff0c;后面需要使用线程的时候&#xff0c;直接从这个地方取&#xff0c;而不是从系统重新申请&#xff0c;线程用完之后也回到刚才的地方。 线程池的优点&#xff1a;降低线程创建和销毁的开销…

MICA:面向复杂嵌入式系统的混合关键性部署框架

背景 在嵌入式场景中&#xff0c;虽然 Linux 已经得到了广泛应用&#xff0c;但并不能覆盖所有需求&#xff0c;例如高实时、高可靠、高安全的场合。这些场合往往是实时操作系统的用武之地。有些应用场景既需要 Linux 的管理能力、丰富的生态&#xff0c;又需要实时操作系统的高…

戴尔vostro15-3568硬盘升级+系统重装

硬盘升级 原2.5机械硬盘换成了SATA2.5的固态硬盘 按F2进入bios后看到的电池信息如下&#xff1a; 需要重新换一个电池 系统重装 步骤如下 1.U盘需要格式化成 NTFS 类型的&#xff0c;并且从官网下载后介质 2.BV1z3411K7AD b站这个视频前三步可以参考设置

八、桥接模式

文章目录 1 基本介绍2 案例2.1 OperatingSystem 抽象类2.2 LinuxOS 类2.3 WindowsOS 类2.4 FileOperation 类2.5 FileAppender 类2.6 FileReplicator 类2.7 Client 类2.8 Client 类运行结果2.9 总结 3 各角色之间的关系3.1 角色3.1.1 Implementor ( 实现者 )3.1.2 ConcreteImpl…

微信答题小程序产品研发-UI界面设计

高保真原型虽然已经很接近产品形态了&#xff0c;但毕竟还不能够直接交付给开发。这时就需要UI设计师依据之前的原型设计&#xff0c;进一步细化和实现界面的视觉元素&#xff0c;包括整体视觉风格、颜色、字体、图标、按钮以及交互细节优化等。 UI设计不仅关系到用户的直观感…