-- 这一部分,是查询每一个课程的平均成绩

(SELECT

课程号,

AVG(成绩) AS 平均成绩

FROM

#成绩表 a

GROUP BY

课程号

) AS 平均成绩表

-- 这个是将 平均成绩 与 成绩表 关联.

LEFT JOIN #成绩表

-- 这里是关联条件

-- 课程号匹配. 成绩要大于平均成绩

-- 学生号的条件,是和外面的学生号关联.

ON (平均成绩表.课程号 = #成绩表.课程号

AND 平均成绩表.平均成绩 < #成绩表.成绩

AND #成绩表.学生号 = #学生表.学生号)

这个子查询的结果,就是将每一个学生的成绩,都与平均成绩作比较.

如果成绩 大于 平均成绩,那么 关联结果中,包含 学生号

如果成绩 小于等于平均成绩,那么 关联结果中, 不包含 学生号,也就是那个 学生号的地方,是 NULL

你可以单独执行中间的那段子查询。

SELECT

平均成绩表.课程号,

平均成绩表.平均成绩,

#成绩表.成绩,

#成绩表.学生号

FROM

(SELECT

课程号,

AVG(成绩) AS 平均成绩

FROM

#成绩表 a

GROUP BY

课程号

) AS 平均成绩表

LEFT JOIN #成绩表

ON (平均成绩表.课程号 = #成绩表.课程号

AND 平均成绩表.平均成绩 < #成绩表.成绩

AND #成绩表.学生号 = 1)

当学生号是1,也就是全部都超过平均成绩的,所有数据都显示。

当学生号是其他的数字的时候,不满足条件的,成绩表的部分是 NULL.

那么最后的那个

WHERE

学生号 IS NULL

是和 前面的

NOT EXISTS(

结合起来使用的。

意思就是

不存在有

学生号是 NULL 的数据。

那么就是所有的成绩都超过 平均成绩了。

假如有一门成绩没超过,那么就会存在有 学生号是 NULL 的,那么就不会显示在最后的结果当中。

至于 "难道再没有稍微简单一点的做法吗?"

我想应该是有的,只不过我的水平不高,也就只能写出这个程度的SQL了。

sql统计各科成绩大于平均分的人_求解: sql 数据库 检索各科成绩均大于等于该科平均成绩的学生的学号和姓名...相关推荐

  1. sql统计各科成绩大于平均分的人_数据分析师SQL面试必备50题

    以下是SQL面试必备的经典的50道题目,每道题都有博主本人的解题思路和对应的SQL语句. 每道题的思路与答案均为博主本人主观理解,仅供参考. 环境:MySQL8.0 可视化工具:Navicat 1.查 ...

  2. 查询计算机科学系的学生,查询“计算机系”学生的学号、姓名、学生所选课程名和成绩,正确的命令是( ..._考试资料网...

    单项选择题第31-35题使用如下三个数据库表: 学生表:student(学号,姓名,性别,出生日期,院系) 课程表:course(课程号,课程名,学时) 选课成绩表:score(学号,课程号,成绩) ...

  3. 计算机学院的学生起个昵称,查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的命令是(..._考试资料网...

    单项选择题使用如下三个数据库表: 学生表:student (学号,姓名,性别,出生日期,院系) 课程表:course (课程号,课程名,学时) 选课成绩表:score (学号,课程号,成绩) 其中出生 ...

  4. c语言编译学生成绩统计,c语言:编写程序,输入是个学生的学号、姓名成绩,输出学生成绩等级和不及格人数。...

    c语言:编写程序,输入是个学生的学号.姓名成绩,输出学生成绩等级和不及格人数.0 定义调用set_grade()设置等级A85 100 C60 69 B70 84 D 0 59 #include #i ...

  5. 以小组为单位,设计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩。

    设计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩. 实现如下要求的功能: 1.根据姓名查询该学生的总成绩: 2.统计全班 ...

  6. sql查询计算机系学生的学号和姓名,实验5数据库的简单查询操作答案.docx

    (6) 从学生信息表中查询计算机系年龄小于 (6) 从学生信息表中查询计算机系年龄小于 20 的学生的信息 SQL 代码如下: (2) (2) 从学生信息表中查询所有学生的姓名和学号信息并分别 实验 ...

  7. mysql查询学号和姓名_数据库SQL语句中 查询选修了全部课程的学生的学号和姓名...

    一.SQL语言查询选修了全部课程的学生的学号和姓名. 两种解决途径: 第一种: 我们可以表示为在SC表中某个学生选修的课程数等于C表中课程总数.相应的SQL语言如下: selectS#,SNAMEfr ...

  8. 现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(学号,课程号,分数) 分别用关系代数表达式和 SQL 语句实现下列 1—5 小题(注意:每小题都要分别 写出关

    现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(学号,课程号,分数) 分别用关系代数表达式和 SQL 语句实现下列 1-5 小题(注意:每小题都要分别 写出关 ...

  9. 【水汐のC#】计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩。实现如下要求的功能:

    设计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩.实现如下要求的功能: 根据姓名查询该学生的总成绩: 统计全班学生总分的 ...

最新文章

  1. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
  2. Oracle常用字段数据类型/to_char函数
  3. 页面间参数值传递含“%”的处理方法
  4. 美国西北大学 计算机工程专业排名,美国西北大学优势专业排名榜单最新一览...
  5. 开源项目|从0到1教你搭建一个适配于智能车的目标检测系统
  6. linux100day(day7)--用户管理和权限管理简单介绍
  7. linux vps 可视化监控,CentOS 7安装Grafana 4及结合Zabbix3.2实现可视化监控图形
  8. 7-7 念数字 (10 分)
  9. MovieClip实现拖拽等移动位置的功能
  10. 最短路算法(3种算法)
  11. 快速划分分栏控制器上的item(自定义)
  12. OracleSpatial函数实例
  13. 五一节快乐~ 顺便写给博友【小诺的网络技术课堂】 小盆友~
  14. Matpower使用中问题
  15. java px pt转化_pt和px的转换
  16. Excel文档中字符型数据转化为数字类型
  17. 有哪些好用的视频录制工具?
  18. WSL2 安装 Ubuntu-20.04 子系统CUDA(Win10和Win11)
  19. 利用VBA将excel中链接转换为图片形式存放在指定的单元格中
  20. maple化简_在线测试(Maple TA)使用须知yx - 课程中心.PDF

热门文章

  1. ensp 进入交换机子接口、让子接口认识vlanid的数据帧、开启路由器的arp广播:实现pc之间的通信。
  2. vue生命周期每个阶段可以做什么
  3. MySql数据库创建用户出现1396这个错误
  4. 7-26 最大公约数和最小公倍数 (C语言)
  5. 域名升级中 自动跳转_今天没事,把自己的官网从http升级到https
  6. Android xUtils3源码解析之注解模块
  7. 一款在线制图工具介绍:如何在线免费绘制UML,云架构,ER模型,平面图,流程图等-...
  8. ctrl c复制浏览器html,网页禁止右键复制和ctrl-c复制,怎么解决 爱问知识人
  9. 细说linux IPC(十):system V 消息队列
  10. 使用linux系统的手机有哪些内容吗,为什么工作选LINUX,我只听说过手机有这个系统...