首页 > 其他分享 >1211. 查询结果的质量和占比

1211. 查询结果的质量和占比

时间:2023-05-10 09:22:06浏览次数:46  
标签:rating 1211 name 查询 质量 query Cat quality

【题目】

查询表 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) 都应四舍五入到小数点后两位。

查询结果格式如下所示:

Queries table:
+------------+-------------------+----------+--------+
| query_name | result            | position | rating |
+------------+-------------------+----------+--------+
| Dog        | Golden Retriever  | 1        | 5      |
| Dog        | German Shepherd   | 2        | 5      |
| Dog        | Mule              | 200      | 1      |
| Cat        | Shirazi           | 5        | 2      |
| Cat        | Siamese           | 3        | 3      |
| Cat        | Sphynx            | 7        | 4      |
+------------+-------------------+----------+--------+

Result table:
+------------+---------+-----------------------+
| query_name | quality | poor_query_percentage |
+------------+---------+-----------------------+
| Dog        | 2.50    | 33.33                 |
| Cat        | 0.66    | 33.33                 |
+------------+---------+-----------------------+

Dog 查询结果的质量为 ((5 / 1) + (5 / 2) + (1 / 200)) / 3 = 2.50
Dog 查询结果的劣质查询百分比为 (1 / 3) * 100 = 33.33

Cat 查询结果的质量为 ((2 / 5) + (3 / 3) + (4 / 7)) / 3 = 0.66
Cat 查询结果的劣质查询百分比为 (1 / 3) * 100 = 33.33

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/queries-quality-and-percentage
【思路】

groupby query_name 然后avg或者手动除

 

【代码】

SELECT query_name ,ROUND(SUM(rating/position)/COUNT(query_name),2) AS quality ,ROUND(100*AVG(rating<3),2) AS poor_query_percentage 
FROM Queries
GROUP BY query_name

注意AVG的使用方式,AVG(rating<3)表示rating<3占所有的平均值。

   

标签:rating,1211,name,查询,质量,query,Cat,quality
From: https://www.cnblogs.com/End1ess/p/17386984.html

相关文章

  • 【数据库测试】【shell脚本】查询同一个SQL执行多次,并统计每次耗时
    场景说明在数据库查询中会常见coldrun与hotrun,hotrun是指将同一个SQL连续运行多遍。运行脚本创建一个run.sh直接复制如下脚本-注意修改数据库的连接IP与密码等-queries2.sql存放查询的SQL,请将queries2.sql文件与run.sh放在同一个目录下,若不在同一个目录,注意改SQL的文件......
  • MySQL(二十二)其他数据库日志(一)通用查询日志和错误日志
    MySQL(二十二)其他数据库日志(一)通用查询日志和错误日志1MySQL支持的日志1.1日志类型慢查询日志:记录执行时间超过long_query_time的所有查询,方便我们对查询进行优化通用查询日志:记录所有连接的起始和终止时间,以及连接发送给数据库的所有指令,对复原操作的实际场景、发现问题......
  • MySQL实现树形查询
    需要mysql8以上,5.7不支持  https://www.jianshu.com/p/f908aa35d448  CREATETABLE`perm_resource`(`resource_id`varchar(50)NOTNULLCOMMENT'资源ID',`resource_name`varchar(100)DEFAULTNULLCOMMENT'资源名称',`resource_parent_id`var......
  • Redis查询之RediSearch和RedisJSON讲解
    来源于:https://www.cnblogs.com/jingzh/p/17033403.html目录1Redis查询1.1RedisMod介绍1.2安装Redis1.3RediSearch+RedisJSON安装1.3.1下载安装1.3.2修改配置1.4RedisJSON操作1.4.1基本操作1.4.1.1保存操作JSON.SET1.4.1.2读取操作JSON.GET1.4.1.......
  • MYSQL查询【全部表】和表【所有字段】
    最近在做一些关于BI的东西。记录下。数据库查询全部表名称和备注信息只能查询表名SHOWTABLES; 查询表名和表备注SELECTTABLE_NAMEtablename,TABLE_COMMENTremarkFROMINFORMATION_SCHEMA.TABLESWHEREtable_schema="xxxx_xxxx"andT......
  • QuerySet对象与查询优化
    QuerySet对象与查询优化一、QuerySet对象Django的ORM中存在查询集的概念。查询集,也称查询结果集,即QuerySet,表示从数据库中获取的对象集合。当调用如下过滤器方法时,Django会返回查询集(与列表类似,但不是简单的列表):all():返回所有数据。filter():返回满足条件的数据。exclude(......
  • ElasticSearch中文分词和模糊查询
    ​前言:    ElasticSearch是一个一个分布式的实时文档存储,每一个字段都可以被索引与搜索,并且能支持PB级别的结构化或者非结构化数据。早期我们应用的全局搜索是简单的SQL模糊查询,为了分担数据库压力所以用了ES,选择他的原因除了以上几点外,还有其提供的API方式简单,于任何对......
  • 索引原理与慢查询优化
    索引原理与慢查询优化一我们要搞明白的问题让我们带着以下问题展开对索引的探索1、为何索引叫key2、索引是如何加速查询的,它的原理是啥?索引模型/结构从二叉树-》平衡二叉树-》b树最后到b+树,每种树到底有什么问题最终演变成到了b+树3、为何b+树不仅能够加速等值查询,还能加速......
  • sql 将每组查询结果用逗号拼接成字符串
    selectatype,name_listfrom( selectlistagg(aname,',')withingroup(orderbyatype)name_list,atypefromlisttablewhereage>0 groupbyatype)a; /*查询listtable表里面所有age大于0的name,按照atype输出,name之间用,拼接起来成为字符串,该字段......
  • 电动汽车用内置式永磁同步电机基于查询表 的矢量控制算法, 自动生成?
    电动汽车用内置式永磁同步电机基于查询表的矢量控制算法,自动生成满足MTPA(最大转矩电流比/MTPV(最大转矩电压比)的dq轴电流参考值查询表。程序使用m脚本文件编写,将生成的查询表以C语言二维数组的形式输入到txt文本文件中,可直接复制到应用程序中,避免工程师对数据进行二次提......