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

网站独立物流系统查指数

网站独立物流系统,查指数,第三方网站做app,网站建设需要做什么​【题目】现有“成绩表”,记录了每个学生各科的成绩。表内容如下:问题:查找单科成绩高于该科目平均成绩的学生名单【解题思路】1."查找单科成绩高于该科目平均成绩",也就是在“每个”科目里比较。还记得我们之前课程里…
1a31cb0b66b08c5f7a1aa223a2b305cc.png

​【题目】

现有“成绩表”,记录了每个学生各科的成绩。表内容如下:

0e03a9501ecaecf1788418a95a7d4555.png

问题:查找单科成绩高于该科目平均成绩的学生名单

【解题思路】

1."查找单科成绩高于该科目平均成绩",也就是在“每个”科目里比较。还记得我们之前课程里讲过的吗?当有“每个”出现的时候,就要想到是要分组了。

能实现“分组”功能的sql有两种,一是group by字句,另一个是窗口函数的partition by。

2.使用聚合窗口函数(求平均值avg),将每门课的平均成绩求出以后,然后找出大于比平均成绩的数据。

这就要求分组后不能减少表的行数。

group by分组汇总后改变了表的行数,一行只有一个类别。而partiition by和rank函数不会减少原表中的行数。例如下面统计每个班级的人数。

758db362ece6ca30a5c9cf800677eea2.png

所以这里我们使用使用窗口函数的partition by。

【解题步骤】

第1步,聚合函数avg()作为窗口函数,将每一科目成绩的平均值求出。sql语句如下:

select *,        avg(成绩) over (partition by 科目) as avg_scorefrom 成绩表;

运行结果如下:

7b99f178411357c4648ee21ce76ab66f.png

第2步,如上表,按科目分组后各科目的平均分已经计算出,接下来只要筛选出成绩大于平均分的数据即可。

那么,只需要在上一步的slq语句里加入条件字句where就可以了

select *,        avg(成绩) over (partition by 科目) as avg_scorefrom 成绩表where 成绩 > avg_score;

很多同学都会用这样的思路解题,但是这样写,sql会报错,为什么呢?

我们在《从零学会sql》里多次强调过,要牢记sql的书写顺序和运行顺序。在运行顺序中,select字句是最后被运行的。

82a612ad3e00cfc5bebfb9a2f2ac5995.png

当明白了运行顺序以后,就知道错误的原因了:运行到”where ranking > 2”的时候,因为select字句还没有被执行,因此select中的“ranking”列还没有出现,从而导致报错。

解决方法是什么呢?

这种情况就可以用子查询,也就是把第一步得到查询结果作为一个新的表,sql语句如下:

select *from (select *,              avg(成绩) over (partition by 科目) as avg_score      from 成绩表) as bwhere 成绩 > avg_score;

运行结果如下:

5772d457f010e848d472b36feccca388.png

【本题考点】

1.主要考查对窗口函数的灵活使用。

2.在筛选过程中,非常容易因为子查询问题报错,本题也考察了对子查询的熟练运用。

3.本题间接考察了对sql语句执行顺序的熟悉程度。

【举一反三】

在“每个组里比较”的问题,比如查找每个组里大于平均值的数据,可以有两种方法:

1)使用上面讲到的窗口函数来实现

2)使用关联子查询,可以回顾《从零学会sql:复杂查询》里的案例

6b4d7bcc6e86abfb5b094082b3d89b2b.png

推荐:如何从零学会SQL?

fefd6be5013d720f00ddfb59d86c3ed7.png
http://www.lbrq.cn/news/2613187.html

相关文章:

  • 做网站一般注册哪几类商标项目优化seo
  • 山东做网站建设的好公司成都网络营销搜索推广
  • 网站后台怎么上传文章百度文库个人登录
  • 京东网站建设及特点软件推广平台
  • 做网站的流程是怎么样的重庆seo优化
  • 怎么做自己网站产品seo百度建站
  • 天天向上做图网站企业类网站有哪些例子
  • 新浪云虚拟主机做电影网站西安小程序开发的公司
  • 网站建设运营期末考试seo常用的优化工具
  • 做淘宝客网站能有效果吗软文是什么
  • 做类似电驴网站抖音关键词推广
  • wordpress编辑器按钮七台河网站seo
  • 怎样做一个好的网站百度推广登录首页官网
  • 海贼王网页设计素材云优化软件
  • 网站机房建设图网站免费seo
  • 群晖配置wordpress 80端口廊坊seo建站
  • 崇州网站建设友情链接交换源码
  • 双语网站建设方案网络销售这个工作到底怎么样
  • 张家港企业网站制作google商店
  • 有没有好的ppt网站做参考的青岛网站
  • 外贸soho先做网站网页开发教程
  • wordpress镜像是什么意思整站seo排名
  • 网站建设免费课程网站推广
  • 运城网站建设公司有多少中国宣布取消新冠免费治疗
  • 喀什百度做网站多少钱头条搜索
  • 做同城购物网站有什么优势吗淘宝美工培训
  • php网站做语言包360优化大师软件
  • 网络在线培训网站建设方案站点查询
  • 大连地图seo每日一帖
  • 网上注册网站要钱吗论坛推广软件
  • Maven入门到精通
  • vue3 vite 使用vitest 单元测试 组件测试
  • OpenHarmony源码解析之init进程
  • iOS混淆工具有哪些?在集成第三方 SDK 时的混淆策略与工具建议
  • 部署 Kibana 8.2.2 可视化管理 Elasticsearch 8.2.2 集群
  • Linux网络编程 --- 多路转接select