当前位置: 首页 > news >正文

MySQL基础练习题37-查找结果的质量和占比

目录

题目

准备数据

分析数据

总结


题目

找出每次的 query_name 、 quality 和 poor_query_percentage

quality 和 poor_query_percentage 都应 四舍五入到小数点后两位 。

准备数据

## 创建库
create database db;
use db;## 创建表
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');

分析数据

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

selectquery_name,round(avg(rating/position),2) as quality,round(avg(rating<3)*100,2) as poor_query_percentage
from queries
group by query_name
having query_name is not null;

总结

我们先逐个分析

前提是需要分组,分完组之后才可以使用聚合函数。

1.avg(rating/position)是把所有的rating除以所有的position。

selectquery_name,sum(position),sum(rating),avg(rating/position),round(avg(rating/position),2) as quality
from queries
group by query_name
having query_name is not null;

2.avg(rating<3)*100,过滤rating<3

selectquery_name,count(rating),sum(rating<3),avg(rating<3),round(avg(rating<3)*100,2) as poor_query_percentage
from queries
group by query_name
having query_name is not null;

注意:count()函数是不支持直接添加大于或者小于。因为count函数是用来统计满足特定条件的记录数,而不是用来比较或筛选数据。

相关文章:

MySQL基础练习题37-查找结果的质量和占比

目录 题目 准备数据 分析数据 总结 题目 找出每次的 query_name 、 quality 和 poor_query_percentage。 quality 和 poor_query_percentage 都应 四舍五入到小数点后两位 。 准备数据 ## 创建库 create database db; use db;## 创建表 Create table If Not Exists Que…...

酒店行业如何利用XML进行营销短信

随着信息社会的到来&#xff0c;消费者获得会所的服务也从单纯的电话方式&#xff0c;逐渐转变为电话、互联网、传真&#xff0c;群发短信等多种媒体并行的方式。今天着重介绍下酒店行业如何利用短信平台进行营销。 群发短信业务对酒店起到的效率&#xff1a;根据新产品或服务向…...

【模型】TFLiteModel

TFLiteModel 指的是 TensorFlow Lite&#xff08;TFLite&#xff09;模型&#xff0c;它是 TensorFlow 的轻量级解决方案&#xff0c;用于在移动设备、嵌入式系统和物联网设备上运行机器学习模型。TFLite 模型通常是从 TensorFlow 模型转换而来的&#xff0c;并且经过了优化&am…...

【Kubernetes】Service 概念与实战

Service 概念与实战 1.通过 Service 向外部暴露 Pod2.Service 的多端口设置3.集群内部的 DNS 服务4.无头 Service 在 Kubernetes 中部署的应用可能对应一个或者多个 Pod&#xff0c;而每个 Pod 又具有独立的 IP 地址。Service&#xff08;服务&#xff09;能够为一组功能相同的…...

RTSP|RTMP流如何指定坐标位置和分辨率获取RGB数据实时渲染和算法分析

接上一篇blog&#xff1a;同一路RTSP|RTMP流如何同时回调YUV和RGB数据实现渲染和算法分析-CSDN博客 我们知道&#xff0c;由于解码后的YUV或RGB数据size比较大&#xff0c;如果想把转换后的RGB数据传给比如python算法的话&#xff0c;数据量还是挺大&#xff0c;为此&#xff…...

基于ssm+vue+uniapp的英语学习交流平台小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…...

如何判断一个TimerTask是否已经完成

如何判断一个TimerTask是否已经完成 判断TimerTask是否已经完成并不是TimerTask或Timer类直接提供的功能&#xff0c;因为TimerTask一旦被提交给Timer执行&#xff0c;它就在一个独立的线程中运行&#xff0c;而Timer类并不直接提供方法来查询或控制任务的执行状态。 然而&am…...

Android常用面试题

1、如何理解Java的多态&#xff1f;其中&#xff0c;重载和重写有什么区别&#xff1f; 2、谈一下JVM内存区域划分&#xff1f;哪部分是线程公有的&#xff0c;哪部分是私有的&#xff1f; 3、final关键字的用法&#xff1f; 4、死锁是怎么导致的&#xff1f;如何定位死锁 5、数…...

JSON与Jsoncpp库:数据交换的灵活选择

目录 引言 一.JSON简介 二. Jsoncpp库概述 三. Jsoncpp核心类介绍 3.1 Json::Value类 3.2 序列化与反序列化类 四. 实现序列化 五. 实现反序列化 结语 引言 在现代软件开发中&#xff0c;数据交换格式扮演着至关重要的角色。JSON&#xff08;JavaScript Object Notati…...

salesforce rich text 字段支持html中内嵌JavaScript吗

Salesforce 的富文本字段&#xff08;Rich Text Field&#xff09;不支持在 HTML 中内嵌 JavaScript。为了安全&#xff0c;Salesforce 会自动移除或过滤用户输入中的任何 JavaScript 代码。这是为了防止跨站点脚本&#xff08;XSS&#xff09;攻击&#xff0c;从而保护 Salesf…...

Ubuntu24.04、22.04或20.04安装Golang方法教程

在Ubuntu Linux&#xff08;例如 Ubuntu 24.04、22.04 或 20.04&#xff09;上安装Go&#xff08;Golang&#xff09;是一个简单的过程。我们可以使用默认系统存储库使用本教程中给出的命令下载开源 Go 编程语言&#xff0c;轻松构建简单、可靠和高效的软件。 Go语言由Google…...

学习记录第二十二天

time函数与localtime函数 在Linux环境下使用C语言处理时间&#xff0c;通常会涉及到几个重要的头文件和函数。主要的头文件是 <time.h>&#xff0c;它包含了处理时间的各种函数和数据结构。 1. 数据结构 1.time_t: 一个类型定义&#xff0c;用于存储时间值&#xff0c…...

红酒与艺术展览:品味艺术与风味的双重盛宴

当艺术的魅力与红酒的醇香交织在一起&#xff0c;一场别开生面的盛宴便悄然展开。今天&#xff0c;让我们一同走进这场红酒与艺术展览的邂逅&#xff0c;品味艺术与风味的双重盛宴。 一、艺术展览的瑰丽世界 艺术展览&#xff0c;如同一座瑰丽的宝库&#xff0c;汇聚了无数艺…...

1Panel配置

1. 脚本安装 curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh2. 配置镜像加速 在容器-> 配置中设置&#xff0c;否则安装软件会失败。 https://docker.211678.top https://docker.1panel.live …...

场外期权是如何定价的?场外期权定价的基本原理是什么?

场外期权的定价通常基于多种复杂的因素&#xff0c;以下是一些场外期权主要的影响因素和常见的定价方法&#xff1a; 影响场外期权定价的因素&#xff1a; 标的资产价格&#xff1a;标的资产当前的市场价格是定价的基础。标的资产价格波动率&#xff1a;波动率反映了标的资产价…...

vue中数据持久化

在Vue中&#xff0c;数据持久化通常指的是将Vue组件或应用中的数据保存到用户的浏览器或设备的存储中&#xff0c;以便在用户的会话&#xff08;session&#xff09;或跨会话&#xff08;如重新加载页面或重新打开浏览器&#xff09;中保持这些数据。Vue本身并不直接提供数据持…...

小白零基础学数学建模系列-Day3-线性回归模型的构建与评估

文章目录 1 线性回归基础1.1 线性回归概念与应用1.2 数学原理与推导1.3 线性回归的实现 2 案例分析&#xff1a;房价预测2.1 加载数据2.2 数据预处理2.3 探索性数据分析2.4 观察选择特征2.5 准备训练模型的数据2.6 将数据拆分为训练集和测试集2.7 训练和测试模型2.8 模型评估 3…...

Flutter中的 extended_nested_scroll_view 库:介绍与使用指南

在开发Flutter应用时&#xff0c;处理复杂的滚动效果是一项常见的任务。Flutter提供了NestedScrollView来实现可折叠的应用栏与滚动列表的结合&#xff0c;但在某些情况下&#xff0c;NestedScrollView可能不够强大。为了解决这些问题&#xff0c;我们可以使用extended_nested_…...

Elasticsearch 综合搜索案例解析

Elasticsearch 是一个功能强大的搜索引擎&#xff0c;它不仅支持全文搜索&#xff0c;还提供了排序、分页、高亮显示等多种搜索结果处理功能。通过综合使用这些功能&#xff0c;我们可以构建出丰富而高效的搜索应用。本文将通过一个具体的案例&#xff0c;介绍如何在 Elasticse…...

Web存储革命:揭秘JavaScript的会话存储(sessionStorage)

标题&#xff1a;Web存储革命&#xff1a;揭秘JavaScript的会话存储&#xff08;sessionStorage&#xff09; 在当今的Web开发中&#xff0c;状态管理和数据持久化是构建交互式应用的关键。JavaScript提供了多种客户端存储解决方案&#xff0c;其中会话存储&#xff08;sessio…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...