问题描述:
表和字段:
-- 1.学生表
-- Student(S,Sname,Sage,Ssex) --S 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别
-- 2.课程表
-- Course(C,Cname,T) --C --课程编号,Cname 课程名称,T 教师编号
-- 3.教师表
-- Teacher(T,Tname) --T 教师编号,Tname 教师姓名
-- 4.成绩表
-- SC(S,C,score) --S 学生编号,C 课程编号,score 分数
按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩
代码:
SELECT a.`S`,a.`Sname`,
IFNULL(MAX(CASE c.Cname WHEN '语文' THEN b.score ELSE 0 END),0) '语文',
IFNULL(MAX(CASE c.Cname WHEN '数学' THEN b.score ELSE 0 END),0)'数学',
IFNULL(MAX(CASE c.Cname WHEN '英语' THEN b.score ELSE 0 END),0) '英语',
IFNULL(CAST(AVG(b.score) AS DECIMAL(18,2)),0) '平均分'
FROM student a
LEFT JOIN sc b
ON a.`S` = b.`S`
LEFT JOIN course c
ON b.`C` = c.`C`
GROUP BY a.`S`,a.`Sname`
ORDER BY '平均分' ;
运行结果
怎么使结果排序