牛客SQL练习详解 06:综合练习

news2024/10/12 19:32:34

牛客SQL练习详解 06:综合练习

    • SQL34 统计复旦用户8月练题情况
    • SQL35 浙大不同难度题目的正确率
    • SQL39 21年8月份练题总数

叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
在这里插入图片描述

SQL34 统计复旦用户8月练题情况

题目:
现在运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数情况,
请取出相应明细数据,对于在8月份没有练习过的用户,答题数结果返回0.

在这里插入图片描述

select 
    u.device_id,
    university,
    count(q.result) as question_cnt,
    sum(if(q.result='right',1,0)) as right_question_cnt
    # count使用错误
    # count(if(q.result='right',1,0)) as right_question_cnt
    #count正确写法:
    # count(CASE WHEN q.result = 'right' THEN 1 END) as right_question_cnt
from user_profile u 
left join question_practice_detail q 
on u.device_id = q.device_id 
and month(date)=8
where university='复旦大学'
group by u.device_id

在这里插入图片描述

出错分析:

1. sum(if(q.result='right',1,0)) as right_question_cn

    if(q.result = 'right', 1, 0):对于每一行,如果 q.result 等于 'right',则返回 1,否则返回 0SUM(...):对所有这些 10 的值进行求和,从而计算出结果为 'right' 的行数。

2. count(if(q.result='right',1,0)) as right_question_cnt

   COUNT() 函数只计算非 NULL 的值。
   而在 IF 的情况下,当条件不满足时,它返回 0,所以会被视为有效值。
   COUNT() 将计算这些有效值的数量,但不会计算条件为 FALSE 的情况,因此会返回意外的结果。

SQL35 浙大不同难度题目的正确率

题目:
现在运营想要了解浙江大学的用户在不同难度题目下答题的正确率情况,
请取出相应数据,并按照准确率升序输出。

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

1:   right join+left join
select 
   qd.difficult_level,
	 SUM(if(q.result='right',1,0))/NULLIF(count(q.result),0) as correct_rate 
from 
   (select 
	     qpd.device_id,
			 qpd.question_id,
			 qpd.result
			 from user_profile 

   # 出错点:此处应该为右连接,否则会产生空值
            # left join question_practice_detail qpd 
			 right join question_practice_detail qpd 
			 on u.device_id = qpd.device_id
			 where university = '浙江大学') q
left join 
   question_detail qd on q.question_id = qd.question_id
group by qd.difficult_level
order by correct_rate ASC

在这里插入图片描述

2:  右连接+左链接

select 
   qd.difficult_level,
	 count(if(qpd.result='right',1,null))/count(qpd.result) as correct_rate 
from user_profile u
       right join question_practice_detail qpd using(device_id)
			 left join question_detail qd using(question_id)
			 where university = '浙江大学'
group by qd.difficult_level
order by correct_rate ASC
3:  内连接 inner join    inner可以省略,返回两个表都有的记录

select difficult_level,
       count(if(result='right',1,null)) / count(result) as correct_rate
from user_profile up
join question_practice_detail using(device_id)
join question_detail using(question_id)
where university='浙江大学'
group by difficult_level
order by correct_rate
4:使用avg函数计算均值 + where...and连接三表

SELECT difficult_level,
       AVG(IF(result='right',1,0)) AS correct_rate
FROM user_profile u, 
     question_practice_detail qpd,
     question_detail qd
WHERE 
      u.device_id = qpd.device_id 
      AND qpd.question_id = qd.question_id
      AND university='浙江大学'
GROUP BY difficult_level
ORDER BY correct_rate;

SQL39 21年8月份练题总数

题目: 
现在运营想要了解20218月份所有练习过题目的总用户数和练习过题目的总次数,
请取出相应结果

在这里插入图片描述

select 
    count(distinct device_id) as did_cnt, 
    count(question_id) as question_cnt 
from question_practice_detail 
where date_format(date,'%Y%m')='202108'     # Y大写:年份4位
# where date_format(date,'%y%m') = '2108'   # 小写y:年份后2位

# where date_format(date, '%Y-%m')='2021-08'
# where date like '2021-08%'
# where year(date)=2021 and month(date)=08
# where date between '2021-08-01' and '2021-08-31'

# where substring(date,1,7) = '2021-08'
# where substring_index(date,"-",2) = '2021-08'
# where mid(date,1,7) = '2021-08'
# where left(date,7) = '2021-08'

Ending!
更多课程知识学习记录随后再来吧!

就酱,嘎啦!

在这里插入图片描述

注:
人生在勤,不索何获。

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

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

相关文章

手撕数据结构 —— 带头双向循环链表(C语言讲解)

目录 0.前言 1.什么是带头双向循环链表 理解带头 ​编辑 理解双向 理解循环 2.带头双向循环链表的实现 List.h文件中接口总览 具体实现 结点的定义 申请结点 初始化 打印链表 尾插 尾删 头插 头删 ​编辑​编辑 获取大小 查找 在指定位置前插入 ​编辑…

初知C++:AVL树

文章目录 初知C:AVL树1.AVL树的概念2.AVL树的是实现2.1.AVL树的结构2.2.AVL树的插入2.3.旋转2.4.AVL树的查找2.5.AVL树平衡检测 初知C:AVL树 1.AVL树的概念 • AVL树是最先发明的自平衡⼆叉查找树,AVL是⼀颗空树,或者具备下列性…

中国剩余定理 C++

题目 解题思路 原链接:https://www.acwing.com/solution/content/3539/ 大致步骤: 将第2,3,4…n个方程不断与第一个方程合并,得到方程a1k1a2k2m2-m1;用扩展欧几里得算法解出a1k1a2k2gcd(a1, a2)的结果,再将结果扩大(m2-m1)/d倍即…

2-laravel-路由配置

文章目录 定义控制器设计控制器设置路由启动服务 基本路由视图路由建立视图路由建立视图文件 控制器视图路由创建视图二级目录控制器 定义控制器 打开laravel 工程 建立一个 Demo 名字的控制器去集成 模板控制器 安装两个插件 设计控制器 <?phpnamespace App\Http\…

关于电动自行车新增的通信功能要求如下

1、 电动自行车应具有采用TLS加密的4G或5G公网通信模块&#xff0c;或类似功能的地面通信模块。 注:根据我国无线电管理有关规定&#xff0c;可能需要对无线电发射模块或整车进行无线电发射设备型号核准。 2、通信模块具备向电动自行车管理平台发送以下动态安全监测信息的功能&…

SpringBoot项目升级JDK版本(1.8 => 17)

项目&#xff1a;这里使用gitee上一个开源项目做测试《SpringBoot 流媒体项目》 工具&#xff1a;Intellij IDEA 一、下载项目&#xff08;git clone …&#xff09; 1、打开 pom.xml 看一下 2、启动项目&#xff0c;记住它最原本的样子先。成功启动后控制台后面是会输出地址…

怎么进行智能配音?一文告诉你

如何给文字智能配音呢&#xff1f;将文字转化为生动的语音&#xff0c;是提升内容吸引力的有效方式。 无论是制作视频、音频课程还是电子读物&#xff0c;合适的配音都能让信息传递更加高效。 如果你正寻找简单易用的方法来给文字添加配音&#xff0c;这里有几款智能配音软件…

0基础能不能转行做网络安全?

0基础能不能转行做网络安全&#xff1f;网络安全人才发展路线 最近有同学在后台留言&#xff0c;0基础怎么学网络安全&#xff1f;0基础可以转行做网络安全吗&#xff1f;以前也碰到过类似的问题&#xff0c;想了想&#xff0c;今天简单写一下。 我的回答是先了解&#xff0c…

Java对接ModbusRTU协议案例测试(相关代码及调试工具使用)

目的 在无设备的情况下&#xff0c;电脑搭建虚拟环境&#xff0c;进行代码编写以及测试 准备工作 一.测试工具 1.模拟虚拟串口工具&#xff0c;modbus RTU使用一问一答模式进行数据交互。 本文内容&#xff1a;模拟主站从站发送读取数据 2.个人设置&#xff1a;COM10为主站&am…

simulink分段函数

两段函数 20<v<60为真时&#xff0c;输出0.8 20<v<60为假时&#xff0c;即v<20或v>60时&#xff0c;输出0v>20时&#xff0c;输出0.8 v<20时&#xff0c;输出0 n段函数 n-1个switch模块

d3dcompiler_43.dll 文件的缺失常见方法分析,一键修复d3dcompiler_43.dll

在使用电脑的过程中&#xff0c;d3dcompiler_43.dll 文件的缺失是一个常见的技术挑战&#xff0c;这一问题通常会影响到基于Direct3D技术的应用程序的正常运行&#xff0c;可能导致程序启动失败或运行错误。d3dcompiler_43.dll 是DirectX组件的一部分&#xff0c;专责于编译用于…

CLIP图文多模态模型onnxruntime和tensorrt推理

首先下载github项目&#xff1a;https://github.com/Lednik7/CLIP-ONNX 修改clip_onnx/utils.py第61行opset_version12为opset_version15 , 运行测试脚本&#xff1a; import clip from PIL import Image import numpy as np# ONNX不支持CUDA model, preprocess clip.load(&q…

FFmpeg的简单使用【Windows】--- 视频倒叙播放

实现功能 点击【选择文件】按钮可以选择视频&#xff0c;当点击【开始处理】按钮之后&#xff0c;会先将视频上传到服务器&#xff0c;然后开始进行视频倒叙播放的处理&#xff0c;当视频处理完毕之后会将输出的文件路径返回&#xff0c;同时在页面中将处理好的视频展示出来。…

SpringBoot Data JPA基本使用

一、项目起步 1.1 pom配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency><dependency><groupId>org.springframework.boot</groupId><…

基于ssm的美妆分享网站的设计与实现

文未可获取一份本项目的java源码和数据库参考。 经济的快速发展&#xff0c;人均可支配收入提高&#xff0c;多数年轻人化妆理念都已经改变。在化妆品消费渗透率不断提升、核心化妆人口持续扩散因素的多重影响下&#xff0c;化妆品行业持续高速增长&#xff0c;但是我们对美妆的…

C++题 十进制转二进制

文章目录 1. 使用C20 std::format2. 使用 std::bitset 类3. 手动实现十进制到二进制的转换反过来&#xff0c;手动二进制到十进制 VisualStudio2022使用C&#xff0c;进行十进制到二进制的转换&#xff0c;常见的实现方式 1. 使用C20 std::format 需要将VisualStudio默认的标准…

信息学奥赛复赛复习16-CSP-J2022-01乘方-循环特判、pow函数、快速幂

PDF文档回复:20241012 此前解析题&#xff0c;P8813 [CSP-J 2022] 乘方&#xff0c;给出了循环的解题思路&#xff0c;当时在洛谷提交是通过的&#xff0c;后台收到留言&#xff0c;a1,b1e9会炸吧&#xff1f;&#xff0c;确实啊整除要求1s内循环次数最大可以到10^7,现在测试数…

微信自动化工具,让多微管理更轻松更高效!

对于多个微信账号的管理&#xff0c;往往会让人感到繁琐和耗时。 这时&#xff0c;通过个微管理系统实现微信自动化设置&#xff0c;将大大提升我们的管理效率。 1、批量自动加好友 只需将客户号码一次性导入系统&#xff0c;设置好加好友规则&#xff0c;系统便会自动发送加…

PS文件保存后突然消失?别急,这里有7种解决方案!

咨询&#xff1a;“我刚做完的PS文件&#xff0c;保存得好好的&#xff0c;怎么就突然消失了呢&#xff1f;连回收站里都没有&#xff0c;这可怎么办才好。” 面对PS&#xff08;Photoshop&#xff09;文件在保存后突然消失的情况&#xff0c;许多设计师和图像处理爱好者可能会…

List的实现类

1.ArrayList&#xff08;数组&#xff09; &#xff08;1&#xff09;代码 新建学生类&#xff1a; package com.collection;public class Student {private String name;private int age;//添加构造方法 都是使用altenter快捷键public Student() {this.name name;this.age…