SQL问题 求解 速度

来源:百度知道 编辑:UC知道 时间:2024/07/01 02:14:55
学生ID 学生姓名 课程ID 课程名称 成绩 教师ID 教师姓名
S3 王五 K4 政治 53 T4 赵老师
S1 张三 K1 数学 61 T1 张老师
S2 李四 K3 英语 88 T3 李老师
S1 张三 K4 政治 77 T4 赵老师
S2 李四 K4 政治 67 T5 周老师
S3 王五 K2 语文 90 T2 王老师
S3 王五 K1 数学 55 T1 张老师
S1 张三 K2 语文 81 T2 王老师
S4 赵六 K2 语文 59 T1 张老师
S1 张三 K3 英语 37 T3 李老师
按照四门课程累加的成绩由高到低,列出所有学生的四门成绩
我要死了 快来人救我

这个题题意有点不清,如果是要按照每个人的总分从高到低再把每科的成绩列出,那么就这样:
SELECT A.* FROM
学生成绩表 A JOIN (SELECT 学生ID,SUM(成绩) AS 成绩 FROM 学生成绩表 GROUP BY 学生ID) B ON A.学生ID=B.学生ID
ORDER BY B.成绩 DESC

如果只是把总分按照从高到低列出那么:
select 学生ID,学生姓名,sum(成绩) from 学生成绩 group by 学生ID,学生姓名 order by sum(成绩) desc

有问题HI我

select * from 表明 order by 成绩 desc

select a.* from 表 as a,(select id,sum(成绩) as 总成绩 from 表 group by id) as b where a.id=b.id
order by b.总成绩

select * from 学生表 left jion (select 学生ID as id count(成绩) as 总成绩 from 学生表 group by 学生ID) on 学生ID=id order by 总成绩 desc