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

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

牛客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_cnif(q.result = 'right', 1, 0):对于每一行,如果 q.result 等于 'right',则返回 1,否则返回 0SUM(...):对所有这些 10 的值进行求和,从而计算出结果为 'right' 的行数。2. count(if(q.result='right',1,0)) as right_question_cntCOUNT() 函数只计算非 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.resultfrom user_profile # 出错点:此处应该为右连接,否则会产生空值# left join question_practice_detail qpd right join question_practice_detail qpd on u.device_id = qpd.device_idwhere 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 uright 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_idAND 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.lryc.cn/news/458837.html

相关文章:

  • k8s apiserver高可用方案
  • 服务器数据恢复—硬盘坏扇区导致Linux系统服务器数据丢失的数据恢复案例
  • 【多线程】多线程(12):多线程环境下使用哈希表
  • 轻量服务器和云服务器ecs哪个好用一些?
  • 【交通标志识别系统】Python+卷积神经网络算法+人工智能+深度学习+机器学习+算法模型
  • 特种设备作业叉车司机试题附答案
  • 【Nginx系列】Nginx启动失败
  • 2024/10/12 计组大题专训
  • 2024年腾讯外包面试题(微创公司)
  • nginx运行时报:No rule to make target ‘build‘, needed by ‘deault‘.Stop
  • dvwa:暴力破解、命令注入、csrf全难度详解
  • Java-学生管理系统[初阶]
  • 微信小程序 详情图片预览功能实现详解
  • LeetCode 48 Rotate Image 解题思路和python代码
  • 余承东直播论道智能驾驶:激光雷达不可或缺,华为ADS 3.0引领安全创新
  • 51WORLD携手浙江科技大学,打造智慧校园新标杆
  • SAP SD学习笔记09 - 受注传票中的不完全Log 和 Business Partner(取引先机能)
  • 【ROS2】里程计(odometry)数据计算、发布
  • AcWing 187 导弹防御系统 暴搜
  • SpringSecurity(三)——自定义优化器
  • STM32通用定时器TIM3的PWM输出实验配置步骤
  • device tree 预研
  • 英伟达股价分析:英伟达股价能否上涨到150美元,接下来该如何操作?
  • Rust 快速入门(一)
  • java 程序在服务器出现时区错误问题(使用Date,LocalDateTime,ZonedDateTime都不正确)
  • Kotlin 语言的协程是什么?
  • uniapp 游戏 - 使用 uniapp 实现的扫雷游戏
  • LeetCode组合总和
  • MATLAB - 机械臂手眼标定(眼在手内) - 估计安装在机器人上的移动相机的姿态
  • 【Unity】TextMeshPro 3.0.9无法显示emoji表情问题