select * from '学生考试表' as a left join '学生表' as b on a.学生ID=b.id -- 查询全部。
select count(1) as ALL, -- 总人数
(select count(1) from '学生考试表' as a left join '学生表' as b on a.学生ID=b.idwhere a.考试时间='期中考试' WHERE 评价='差') AS badboy, -- 差的人数
badboy/ALL as percent, -- 差的人数的百分比
(select count(1) from '学生考试表' as a left join '学生表' as b on a.学生ID=b.idwhere a.考试时间='期中考试' WHERE 评价='中等') AS middleboy, -- 中等人数
middleboy/ALL as percent, -- 中等人数百分比
(select count(1) from '学生考试表' as a left join '学生表' as b on a.学生ID=b.idwhere a.考试时间='期中考试' WHERE 评价='优秀') AS goodboy, -- 差的人数
goodboy/ALL as percent, -- 优秀人数的百分比
MAX(a.成绩) as maxscore, -- 最高分
MIN(a.成绩) as minscore, -- 最低分
AVG(a.成绩) as avgscore -- 平均分
from '学生考试表' as a left join '学生表' as b on a.学生ID=b.id
where a.考试时间='期中考试';
这不都是一样的吗。。。你要查啥就加一行就是了啊。
select count(1) as ALL, -- 总人数
(select count(1) from '学生考试表' as a left join '学生表' as b on a.学生ID=b.idwhere a.考试时间='期中考试' WHERE 评价='差') AS badboy, -- 差的人数
badboy/ALL as percent -- 百分比
from '学生考试表' as a left join '学生表' as b on a.学生ID=b.id
where a.考试时间='期中考试';