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

SQL每日一练(7)

继续做一下题目,这次是连续两道题目连在一起的,就一起做了。

原始表scores

classcoursescore
Class1data_visualization85
Class1data_visualization90
Class2data_visualization80
Class2data_visualization75
Class1sql78
Class1sql82
Class2sql70
Class2sql72

题目一:
查询 Class1 班级 data_visualization 平均分与 Class2 中 data_visualization 平均分的差值。
结果输出:Class1_data_visualization 平均分,Class2_data_visualization 平均分,差值。

题目二:
Class1 班级 data_visualization 平均分与 Class2 中 data_visualization 平均分的差值(四舍五入保留 2 位小数)?
填写示例:2.11

题目一思路:(考察avg还有case when then end)

平均数利用avg函数即可 查询中加入case data_visualization when score即可,差值直接计算两个平均数差值即可。

SELECTAVG(CASE WHEN class = 'Class1' AND course = 'data_visualization' THEN score ELSE NULL END) AS avg_class1_data_visualization,AVG(CASE WHEN class = 'Class2' AND course = 'data_visualization' THEN score ELSE NULL END) AS avg_class2_data_visualization,AVG(CASE WHEN class = 'Class1' AND course = 'data_visualization' THEN score ELSE NULL END) - AVG(CASE WHEN class = 'Class2' AND course = 'data_visualization' THEN score ELSE NULL END) AS diff
FROMscores;

题目二思路:(考察round函数)round(需要的值,四舍五入保留位数)

直接round即可

SELECT ROUND(AVG(CASE WHEN class = 'Class1' AND course = 'data_visualization' THEN score ELSE NULL END) - AVG(CASE WHEN class = 'Class2' AND course = 'data_visualization' THEN score ELSE NULL END), 2) AS difference
FROM scores;

 这里提一下我们是把where优化掉了,可以加where course省略掉case 里面的课程号,但是我们这样更好,少了一次查询。

题目三:
查询各班级 sql 成绩中低于于班级 sql 平均分的人员个数。
结果输出:班级,班级 sql 平均分,低于 sql 成绩平均分人数。

题目四:
班级 sql 平均分最低的班级是哪个?对应的低于 sql 成绩平均分人数是多少?
填写示例:Class1 5

题目三思路:利用sum窗口函数+(partition即可)

SELECT class,AVG(score) AS avg_sql,  -- 计算班级SQL平均分(聚合函数)SUM(CASE WHEN score < AVG(score) OVER (PARTITION BY class) THEN 1 ELSE 0 END) AS num_people
FROM scores
WHERE course = 'sql'  -- 过滤SQL课程
GROUP BY class;  -- 按班级分组统计

 题目四:order 排序limit1 然后查询人数即可

SELECT class,AVG(score) AS avg_sql,SUM(CASE WHEN score < AVG(score) OVER (PARTITION BY class) THEN 1 ELSE 0 END) AS num_people
FROM scores
WHERE course = 'sql'
GROUP BY class
ORDER BY avg_sql ASC
LIMIT 1;

相关文章:

  • clickhouse-1-特性及docker化安装
  • Ubuntu 22.04 高效Python依赖管理指南
  • 工作流长任务处置方案
  • SQL 每日一题(6)
  • Nature图形解析与绘制—热图的绘制及深入解析
  • 【Excel VBA 】窗体控件分类
  • C++引用以及和指针的区别
  • 《数据结构》系列笔记|附扫描手写笔记 1.0开篇-数据结构在学什么?
  • 数据结构第2章 (竟成)
  • Java基础 Day20
  • 【爬虫学习】Python数据采集进阶:从请求优化到解析技术实战
  • 二叉树--OJ2
  • 【数据结构】线性表之“双链表(带头循环双向链表)”
  • 这个方法关闭PowerBI账户的安全默认值
  • 【Android】基于SurfaceControlViewHost实现跨进程渲染
  • IEEE链接Overleaf
  • 代码随想录第43天:图论4(最小生成树、拓扑排序)
  • 代码随想录算法训练营 Day53 图论Ⅳ 字符串接龙 有向图 岛屿周长
  • 第5章:任务间通信机制(IPC)全解析
  • 云手机安卓12哪个好?掌派云手机安卓12系统上线,开启流畅体验新纪元
  • 模板网站什么意思/抖音代运营收费详细价格
  • 高端建设网站公司/谷歌广告投放教程
  • 企业门户网站设计方案/北京网站优化多少钱
  • 唐山网站制作app/郑州seo优化顾问阿亮
  • 网站建设标签/免费b2b网站推广渠道
  • 各类网站建设/最基本的网站设计