MYSQL练题笔记-聚合函数-各赛事的用户注册率

news2024/11/19 18:41:54

一、题目相关内容

1)相关的表

2)题目

3)帮助理解题目的示例,提供返回结果的格式

二、自己初步的理解

有两张不同左右的表,用户表和赛事注册表。然后解题。

1.各种赛事的用户注册百分率

各种赛事的意味着通过contest_id进行分组。

用户注册百分率,我的理解所有用户里面注册这个赛事的百分比,分子其实就是每个赛事参加的用户,也就是分组后的记录数;分母是所有用户数。

或者利用左连接,然后通过avg(case when user_id is not null then +user_id else +0 end)函数算比率。

2.保留2位小数,利用round()。

3.结果按照percentage 降序,相同按照 contest_id,转换成代码就是order by percentage desc,contest_id。

4.加表名

然后我来思考一下,在哪些字段前面加表名。

怀疑case when user_id 要加,变为u.user_id,好吧,测试后+user_id 也要加上u.,就是下面的代码。

Select contest_id,round(avg(case when u.user_id is not null then +u.user_id else +0 end),2)as percentage from users u left join register r on u.user_id=r.user_id group by contest_id order by percentage desc,contest_id;

发现百分率的结果差别,很大,运行结果如下图。

三、错误后的再次分析

1.计算赛事用户注册百分率出现错误

发现上面的计算方式不对,我不是利用值,是利用记录数。

Count(*)/Count(u.user_id) ,这个结果都是1,但是不是左连接吗?

oh,我找答案算了。下面是我找到的题解。

select contest_id, round(100*count(user_id)/(select count(1) from users),2) as percentage from Register group by contest_id order by 2 desc, 1;

好吧确实是我第一个想法是对的,就是每个赛事参加的用户,也就是分组后的记录数;分母是所有用户数。

分析题解里的count(u.user_id)和count(*):

这里count(1),用count(*)代替也有结果,就是速度不一样。

但是count(u.user_id) 这个是必须的,因为不统计NULL。

2.发现还是出错,他还是设置了一个null的,就是有可能有人什么赛事都没有参加,我又忘记了!!!根本不用左连接就行了,啊啊啊啊啊啊啊啊,而且我才发现我找的都没有连接,下面是我最终通过的答案。

Select contest_id,round(100*count(u.user_id)/(select count(*) from users),2)as percentage from users u join register r on u.user_id=r.user_id group by contest_id order by percentage desc,contest_id;

3.题解与我的不同,所以我也不用连接,而且他的排序用的2,1很有意思,应该就是这张表拍第一的字段和排第二的字段,下面是我修改过后的题解

Select contest_id,round(100*count(user_id)/(select count(*) from users),2)as percentage from register group by contest_id order by percentage desc,contest_id;

四、总结

1.这种计算百分比的,我发现自己还是比较容易出错的

2.到底是连接没理解对,空值存在的情况还是没考虑好。

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

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

相关文章

Spring 声明式事务

Spring 声明式事务 1.Spring 事务管理概述1.1 事务管理的重要性1.2 Spring事务管理的两种方式1.2.1 编程式事务管理1.2.2 声明式事务管理 1.3 为什么选择声明式事务管理 2. 声明式事务管理2.1 基本用法2.2 常用属性2.2.1 propagation(传播行为)2.2.2 iso…

希宝猫罐头怎么样?专业人士告诉你营养好的猫罐头推荐

作为一个6年铲屎官来说,买过的猫罐头可以说是不计其数啦。对于猫罐头品牌选购和喂养相关知识,我还是有点心得的。希宝猫罐头怎么样呢? 希宝猫罐头采用了先进的加工工艺,注重产品的包装和密封性,包装设计比较符合年轻人…

年底了,项目预算怎么创建?9个步骤直接搞定

如果将项目比作一辆汽车,那么预算就是它的燃料。就像汽车需要汽油一样,项目也需要资金和资源来维持运转。而作为项目经理,应该尽量用最有效的方式规划和使用这些资源,使项目按时交付。 项目预算是一项计划,其中详细说…

使用Plex结合cpolar搭建本地私人媒体站并实现远程访问

文章目录 1.前言2. Plex网站搭建2.1 Plex下载和安装2.2 Plex网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 用手机或者平板电脑看视频,已经算是生活中稀松平常的场景了,特别是各…

使用Java语言判断一个数据类型是奇数还是偶数

判断一个数字类型是奇数,还是偶数,只需要引入Scanner类,然后按照数据类型的定义方式进行定义,比较是按照与2进行整除后的结果;如果余数为零,则代表为偶数,否则为奇数。 import java.util.Scann…

学习php中使用composer下载安装firebase/php-jwt 以及调用方法

学习php中使用composer下载安装firebase/php-jwt 以及调用方法 1、安装firebase/php-jwt2、封装jwt类 1、安装firebase/php-jwt composer require firebase/php-jwt安装好以后出现以下文件: 2、封装jwt类 根据所使用的php框架&#xff0c;在指定目录创建 Token.php <?ph…

对小工蚁关于LLM的技术总结+个人思考

LLM能力从何而来&#xff1a; 推理能力&#xff1f;目前还未知晓为何得到结果 斯坦福大学的AI指数 通过种子任务自动生成数据训练LLM 基于self-instruct及175条种子任务生成数据。 LLM大模型如何进行微调&#xff1f; 1.blog/trl-peft.md at main huggingface/blog GitH…

2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-A

2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-A 目录 2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-A 需要环境或者解析可以私信 &#xff08;二&#xff09;A 模块基础设施设置/安全加固&#xff08;200 分&…

【跨境营商】创新科技助力数码转型 增强大湾区企业核心竞争力

粤港澳大湾区作为国家的重点发展区域&#xff0c;坐拥丰富的资源及商机&#xff0c;企业积极推行数码化&#xff0c;务求在大湾区抢占先机。香港电讯商业客户业务董事总经理吴家隆表示&#xff0c;近年企业锐意加快数码化步伐&#xff0c;香港电讯以创新科技融入的数码方案&…

【Axure高保真原型】3D大屏可视化模板

今天和大家分享3D大屏可视化的原型模板&#xff0c;里面包括3D条形图、3D柱状图、3D饼图、3D环形图、3D金字塔图&#xff0c;鼠标移入图表&#xff0c;对应区域会高亮变色&#xff0c;并且显示对应的数据标签&#xff0c;具体效果可以点击下方视频观看或打开下方预览地址查看哦…

新媒体营销模拟实训室解决方案

一、引言 随着互联网的发展&#xff0c;新媒体已成为企业进行营销和品牌推广的重要渠道。然而&#xff0c;对于许多企业来说&#xff0c;如何在新媒体上进行有效的营销仍是一大挑战。为了解决这个问题&#xff0c;我们推出了一款新媒体营销模拟实训室解决方案&#xff0c;以帮…

Linux DataEase数据可视化分析工具本地部署与远程访问

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务…

池化技术(对象池)

什么是池化技术 池化技术是一种很常见的编程技巧&#xff0c;目的在于提前创建如内存&#xff0c;对象&#xff0c;线程资源&#xff0c;降低程序运行时频繁的创建销毁带来的开销。常见的有线程池&#xff0c;内存池&#xff0c;对象池等。 池化技术如何提高性能&#xff0c;…

分享几个电视颜色测试图形卡

介绍 本文分享几个常见的电视颜色测试图形卡和一段matlab程序&#xff0c;完成JPG转FPGA烧写文件&#xff0c;便于把彩色图片预装载到FPGA内。 电视颜色测试图形卡 一种专业检测电视显示效果的工具。它通常由一张卡片和一些色块组成&#xff0c;可以根据标准色彩空间和颜色渐…

A simple two-dimensional Brownian motion animation

This code continues the previous blog post on two-dimensional collisions to model Brownian motion. The code is on GitHub page ‘https://github.com/xnx/collision’. The core classes, PeriodicParticle and PeriodicSimulation are derived from the original Par…

部分c++11特性介绍

在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1)&#xff0c;使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于C03(TC1)主要是对C98标准中的漏洞进行修复&#xff0c;语言的核心部分则没有改动&#xff0c;因此人们习惯性的把两个标准合并称为C98/03标…

二维码智慧门牌管理系统升级解决方案:存疑地址轻松管理

文章目录 前言一、存疑地址的统一管理二、数据查询、导出和编辑功能三、提交地址审核机制 前言 随着二维码智慧门牌管理系统在企业中的广泛应用&#xff0c;地址存疑成为了一个亟待解决的问题。为了帮助企业有效管理这些存疑地址&#xff0c;我们推出了升级解决方案&#xff0…

网页文章采集工具-人工智能AI功能

简数采集器是一款支持人工智能AI功能的网页文章采集工具&#xff0c;它可以调用百度的文心一言AI对采集的数据进行分析&#xff0c;处理&#xff0c;内容创作等等&#xff0c;根据你的需求进行更加灵活的数据采集和处理。 文心一言人工智能AI功能使用方法&#xff1a; 1. 填写…

2023年中国中高端服饰品牌经营现状和市场发展趋势分析|徐礼昭

徐礼昭&#xff08;商派市场负责人、RRL重构零售实验室负责人&#xff09; 一、引言 中国服饰市场在过去的几年中经历了快速的发展&#xff0c;其中中高端市场更是呈现出强劲的增长势头。然而&#xff0c;随着消费者需求的不断变化和市场竞争的加剧&#xff0c;中高端服饰品牌…

观测云产品更新 | 监控、数据脱敏、快照分享等优化

观测云更新 监控 1、监控器 - 事件内容插入链接的联动优化&#xff1a;根据检测指标自动生成跳转链接&#xff0c;支持在插入链接后调整过滤条件和时间范围&#xff0c;您也可以自定义跳转链接。其中&#xff0c;若需要插入跳转到仪表板的链接&#xff0c;基于以上逻辑&#…