前言:

创建以下四张表:①:课程表

②:成绩表

③:学生表

④:教师表

1.查询课程编号为“”01“”的课程比“02”的课程成绩高的所有学生的学号(重点)

SELECT
a.s_id "s_no",
c.s_name,
a.s_score "01",
b.s_score "02"
FROM
( SELECT s_id, c_id, s_score FROM score WHERE c_id = '01' ) AS a
INNER JOIN ( SELECT s_id, c_id, s_score FROM score WHERE c_id = '02' ) AS b ON a.s_id = b.s_id
INNER JOIN student AS c ON c.s_id = a.s_id
WHERE
a.s_score > b.s_score

结果如图所示

浅谈思路:( SELECT s_id, c_id, s_score FROM score WHERE c_id = '01' ) AS a 首先先从课程表中查询出选了01课的所有学生建为a表

INNER JOIN ( SELECT s_id, c_id, s_score FROM score WHERE c_id = '02' ) AS b ON a.s_id = b.s_id 同样从课程表中查询选了02课的所有学生建为b表,并且进行连接。连接条件为:

ON a.s_id = b.s_id   采用学生编号将这两张表连接起来

INNER JOIN student AS c ON c.s_id = a.s_id 再连接一张学生表,把学生的名字查询出来

WHERE
a.s_score > b.s_score  查询01课的成绩大于02课的成绩

SELECT
a.s_id "s_no",
c.s_name,
a.s_score "01",
b.s_score "02"
FROM

最后查询出学生编号,学生姓名,学生的01课程成绩,02课程成绩即可。

2.查询出平均成绩大于60分的学生的学号和成绩

Select s_id,avg(s_score)
from score
GROUP BY s_id HAVING avg(s_score)>60

查询结果如图所示

浅谈思路:

Select s_id,avg(s_score) 查询出学生的ID,和成绩的平均值
from score  从成绩表中查询
GROUP BY s_id HAVING avg(s_score)>60

group by 分组 [学号]
having 分组条件 [平均成绩大于60分:avg(成绩 ) >60]

引用一下https://blog.csdn.net/qq_38962853/article/details/73838626解释一下group by的用法

当SELECT 后 既有 表结构本身的字段,又有需要使用聚合函数(COUNT(),SUM(),MAX(),MIN(),AVG()等)的字段,就要用到group by分组,查询的限定条件里有需要用聚合函数计算的字段时也需要用分组,比如:
select avg(grade) from cs
查询选课表(cs)中学生的总成绩(grade);这里就不用分组;
又如:
select sno,sum(grade) from cs group by sno
查询选课表里每个学生的总成绩,这里就要用分组,分组的依照字段必须是select 后没有被计算过的原始字段;
以上是分组用法。

最新文章

  1. BootStrap 杂记
  2. Ubuntu Server 安装桌面untiy
  3. QL Server 实用脚本
  4. 使用C#向ACCESS中插入数据(仅供参考)
  5. canvas 实现 柱状图
  6. MySQL(六) —— 运算符和函数
  7. linux套件安装过程中configure,make,make install的作用
  8. php生成二维码可以有以下几种方式
  9. java中通过位运算实现多个状态的判断
  10. 在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static
  11. Nine simple steps to enable X.509 certificates on WCF- 摘自网络
  12. makefile的简单写法
  13. 关于HSL和HSV颜色空间的详细论述
  14. OSPF+LVS ,qugga,vconfig,...感觉这些很有想法啊
  15. hadoop高可用集群搭建小结
  16. iptables 完成联网控制 (续) ,独立native进程监听。
  17. js打印小结
  18. Python第3次作业--李珠霞
  19. dubbo-admin2.8.4部署
  20. C语言中二维字符数组的定义和初始化

热门文章

  1. grep展示相邻行
  2. 【笔记】Win7连接公司内网无法打开网页
  3. MQTT 客户端出现连接订阅等问题时如何排查?
  4. sqoop mysql2hive
  5. 虚拟机中Linux分区扩容
  6. vue 图片下载
  7. editorconfig配置
  8. CxImageJPG
  9. SSR,SSAO
  10. K8s高可用集群部署(四)