求 查询SQL 超级难。。。

来源:百度知道 编辑:UC知道 时间:2024/07/04 18:17:17
一张表只有
序号
名字
语文
数学
英语
班级

怎么求 这个班级的考试人数,平均分,及格率,每科>=80,每科>=90,最高分
最低分, 总分300以上,总分250-300,总分200-250

超长SQL,写来写去都不对,,应该怎么写啊?各位拜托帮个忙!谢谢!
每科分数120,总分360分,
平均分 全班同学的总分/参加考试的人数
及格率 三科都大于等于60分/三科都大于等于60分的人数
每科>=80 三科都大于等于80分/三科都大于等于80分的人数
每科>=90 三科都大于等于90分/三科都大于等于90分的人数
最高分 查出总分(语文+数学+英语)最高分
最低分 查出总分(语文+数学+英语)最低分

总分300以上 总分300以上有多少人?

谢谢下面大家的回答! 不知道这样清楚了吗?
如果可以写为一个SQL更好。。不知道可以吗?
如果可以写为一个SQL更好。。不知道可以吗?
如果可以写为一个SQL更好。。不知道可以吗?
谢谢!

什么叫及格率?是全部课程的及格率,还是分科?
还有总分300以上的人数还是什么?
你这个是要在一行里表示,还是分着表示,你自己也没描述清楚啊

我的疑问如一楼所说的。还有:只有三科,总分有的在300以上,那么单科的满分不只是100分吧,可能是120,150。所以无法确定的你及格率。
另外:此语句只能分开写,因为所显示行数不一样
---如果你的表里只有一个班级,那么可以去掉where 后面语句
select count(*) as '考试人数' from tb where 班级='1'
select avg(语文) as '语文平均分' from tb where 班级='1'
select avg(数学) as '数学平均分' from tb where 班级='1'
select avg(英语) as '英语平均分' from tb where 班级='1'

select * from tb where 语文>=80 and 数学>=80 and 英语>=80 and 班级='1' ---如果只查名字, 则可以 把* 替换为 名字 as '每科'>=80
select * from tb where 语文>=90 and 数学>=90 and 英语>=90 and 班级='1' ---如果只查名字, 则可以 把* 替换为 名字 as '每科'>=90
select min(语文) as '语文最低分' ,min(数学)as '数学最低分' ,min(英语) as '英语最低分' from tb where 班级='1'
select max(语文) as '语文最高分' ,max(数学)as '数学最高分' ,max(英语) as '英语最