牛客网Mysql题目-SQL进阶篇 SQL 126-155

news2025/1/10 23:16:12

前言

这篇是进阶sql题目的记录,由于上一篇文章已经写将近一万字,有点长,就把剩下的再开一篇,免得总是重新发布

SQL126 平均活跃天数和月活人数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本题目要求统计,并且是多行,就需要使用group by查询
首先需要统计月份,这个需要format格式化出月份,统计每个月份里平均的活跃天数(各人活跃天数和/选取去重的人数),
月度活跃人数(在这个月且submit_time不为空的人数)
这里使用 count(distinct(date_format(submit_time,‘%Y-%m’))统计月份,但是发现数量对不上
经过反复尝试后发现这里不需要distinct去重,因为count自带去重,并且也去掉null了

select date_format(submit_time,'%Y%m') AS month,round(count(submit_time)/count(distinct(uid)),2) AS avg_active_days,count(distinct(uid)) AS mau
from exam_record 
where year(submit_time)=2021 AND submit_time is not null
group by date_format(submit_time,'%Y%m') 

之后发现有个用例通不过,检查后发现这里有一个用户在一天做了两种卷子
于是需要组合去重

select date_format(submit_time,'%Y%m') AS month,
round((count(distinct uid,date_format(submit_time,'%Y%m%d')))/count(distinct uid),2)
     AS avg_active_days,
count(distinct uid) AS mau
from exam_record 
where year(submit_time)=2021 
group by date_format(submit_time,'%Y%m')

这里distinct不写括号也可以
round这里括号比较多,需要注意

SQL127 月总刷题数和日均刷题数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

类似于上一道题,统计每个月的总题目数和日均刷题数量,group by肯定要用,但是第三行要求总的数量

这里求日均需要求这个月的天数,使用这个函数DAY(LAST_DAY(yourColumnName))

select date_format(submit_time,'%Y%m') AS submit_month
,count(date_format(submit_time,'%Y%m')) AS month_q_cnt
,round(count(date_format(submit_time,'%Y%m'))/DAY(LAST_DAY(submit_time)),3)  AS avg_day_q_cnt 
from practice_record
where year(submit_time) = 2021
group by date_format(submit_time,'%Y%m')

这里有一个错误
SQL_ERROR_INFO: "Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘practice_record.submit_time’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

查阅得知这个/DAY(LAST_DAY(submit_time))因为day(last_day(submit_time)运算结果还是跟submit_time同样的一串数列,只有加上avg(),min()或max()运算才变成了一个数值作为分母使用
这样输出正确了
在这里插入图片描述
之后需要在最后一行输出总和
看到都是用union,union all做的,这两个分别是合并重复和不合并的,都是把两个查询结果上下合到一个表里

select date_format(submit_time,'%Y%m') AS submit_month
,count(date_format(submit_time,'%Y%m')) AS month_q_cnt
,round(count(date_format(submit_time,'%Y%m'))/avg(DAY(LAST_DAY(submit_time))),3)  AS avg_day_q_cnt 
from practice_record
where year(submit_time) = 2021
group by date_format(submit_time,'%Y%m')
union all
select '2021汇总'  as submit_month,
count(submit_time) as month_q_cnt,
round(count(submit_time)/max(31),3) as avg_day_q_cnt 
from practice_record
where year(submit_time) = 2021
order by submit_month

这里31加max是为了做分母,用30会报错,和放在下面是做不到的,需要另外计算

后记

后续在这里发布

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

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

相关文章

kafka可靠性保证

1、概念 创建Topic的时候可以指定--replication-factor 3 ,表示分区的副本数,不要超过broker的数量。Leader是负责读写的节点,而其他副本则是Follower。Producer只把消息发送到Leader,Follower定期地到Leader上Pull数据。ISR是Le…

基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

[附源码]计算机毕业设计的家政服务平台Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Linux系统(Centos7)了解DNS服务

配置与管理DNS服务器 项目导入 某高校组建了校园网,为了使校园网中的计算机简单快捷地访问本地网络及Intemet上的资源,需要在校园网中架设 DNS 务器,用来实现将域名转换成IP地址的功能。在完成该项目之前,首先应当确定网络中D…

基于多目标优化算法的电力系统分析(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🎉作者研究:🏅🏅🏅主要研究方向是电力系统和智能算法、机器学…

Volatile关键字的作用

专栏链接:多线程相关知识详解 编译器有优化功能,会对写好的代码进行优化,在多线程里面可能就会对代码的执行逻辑进行修改,就可能会产生bug 例如下面这个代码: import java.util.Scanner;class Counter{public static int count 0; }public class Demo {public static void …

RK3568平台开发系列讲解(系统优化篇)系统卡顿了怎么办

🚀返回专栏总目录 文章目录 一、卡顿问题分析指标二、Android 卡顿排查工具沉淀、分享、成长,让自己和他人都能有所收获!😄 📢对用户来说,内存占用高、耗费电量、耗费流量可能不容易被发现,但是用户对卡顿特别敏感,很容易直观感受到。另一方面,对于开发者来说,卡顿…

windows vs2019 编译glib2

1、安装meson pip install meson 确认是否安装成功,命令行输入: meson --version 0.60.0 2,安装ninja 先下载ninja:Releases ninja-build/ninja GitHub 加压后,把ninja.exe所在目录加入环境变量 确认是否安装成功&#xf…

英文外链怎么做效果好?

google英文外链怎么做效果好? 答案是:建设GPB外链 正确的外链建设行为追求的是高质量的外链。 对于高质量外链的定义:优质的外链是来自搜索引擎和搜索者都信任的权威网站,网站越值得信赖、越权威,链接质量就越好 网…

【ElementUI】树形控件 el-tree

目录 公共参数 基础用法 最后一层不可选择 思路一:第三层设置disable 思路二:利用样式隐藏掉第三层的选框 最后一层展示复选框 转载请注明:宾果的救星的博客_CSDN博客 公共参数 treeContent:[{name: 1,id: 1,level: 1,children: [{na…

HPPH偶联金属/小分子抑制剂/上转换纳米颗粒/点击化学/核壳磁性纳米粒子的方法

小编这里分享了科研内容HPPH偶联金属/小分子抑制剂/上转换纳米颗粒/点击化学/核壳磁性纳米粒子的方法,来看! 点击输入图片描述(最多30字) 制备光敏剂HPPH的方法: (1) 叶绿素-a的提取;(2)脱镁叶绿酸-a甲酯的制备;(3)焦…

ADI Blackfin DSP处理器-BF533的开发详解20:4.3寸LCD液晶屏的设计与应用(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 ADSP-EDU-BF53x 开发板上的液晶屏为 480*272 尺寸真彩 TFT 液晶屏,其型号为 WXCAT43-TG3#001R。 WXCAT43-TG3#001R 为 24B…

C#开发如何加载64位版本易景地球 EviaEarth的三维控件

易景地球6.1.x后续的版本不再出32位的系统,只有64位版本的系统。 在c#开发中,form又如何将EviaEarth三维视窗控件放到上去呢? 有办法 以vs2019开发环境为例,新建工程后,添加引用文件:AxInterop.EviaEart…

小白Vue3+Nginx实现部署

文章目录前言一、搭建vue31、查看vue/cli版本,确保vue/cli版本在4.5.0以上2、如果版本达不到,安装或升级你的vue/cli3、创建4、启动可能出现的问题:vue : 无法加载文件 D:\NodeJS\node_global\vue.ps1,因为在此系统上禁止运行脚本。解决办法第…

[基因遗传算法]进阶之三:实践CVRP

实践CVRP 参考资料:《实现VRP常见求解算法——遗传算法(GA)》 属于该篇文章的解读 文章目录实践CVRPA. 定义三个classB.读取数据,打造初始属性卡C. 路线规划D. 生成解的初始空间(初代种群)D. 计算每个路段route的距离E. 计算适应度F.物竞天择F.交叉G.变…

程序员高收入的职业发展方向了解一下

做程序员简单吗?简单! 做高收入的程序员简单吗?不简单! 作为一名程序员,不论是刚出社会的小白,还是技术实力深厚的经验人士,最重要的是要找到适合自己的职业发展方向。 本位就为大家介绍一下程…

微服务框架 SpringCloud微服务架构 28 数据同步 28.2 导入酒店管理项目

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构28 数据同步28.2 导入酒店管理项目28.2.1 案例28 数据同步 28.2 导入酒店…

[附源码]计算机毕业设计健身房信息管理Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

RK3588平台开发系列讲解(SPI篇)SPI内核配置及驱动使用

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、RK3588功能特点二、内核软件2.1、代码路径2.2、SPI 设备配置 —— RK 芯片作 Master 端2.3 、SPI 设备配置 —— RK 芯片作 Slave 端2.4、SPI 设备驱动介绍三、常见问题3.1、SPI 无信号3.2、延迟采样时钟配置方案沉…

OFDM中分析不同频偏(CFO)对通信链路的误码率影响仿真分析

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 OFDM是 Orthogonal Frequency Division MulTIplexing的缩写,即正交频分复用,是一种无线环境下的高速传输技术,也可以看作一种特殊的FDM形式。OFDM 技术的主要思…