1.然后新建一张学生表(T_User),拥有两个字段:id、姓名,学生表的id匹配表A里的学生id,查询语句通过连接实现(不考虑内外或者交叉连接的问题了),代码如下:
select UName,
(select AVG(Grades) from UserInfo where GName = '语文' and UName = tu.name) as '语文',
(select AVG(Grades) from UserInfo where GName = '数学' and UName = tu.name) as '数学',
(select AVG(Grades) from UserInfo where GName = '英语' and UName = tu.name) as '英语'
from UserInfo as ui join T_User as tu
on ui.UName = tu.name
group by ui.UName,tu.name;
2.查询不同班级,不同课程的平均成绩,按照平均成绩从大到小排序
class表(id,class_name);
student表(id,student_name,class_id)
score表(student_id,course_name,points)
查询不同班级不同课程的平均分,从大到小排序。
select
c.class_name,s.course_name ,avg(points)
from class c
left join student stu on c.id=stu.class_id
left join score s on s.student_id = stu.id
group by c.id,s.course_name
order by avg(points) desc;
UNION
union:对两个结果集进行并集操作,重复数据只显示一次
union All:对两个结果集进行并集操作,重复数据全部显示
版权声明:本文为zhu_fangyuan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。