/* 查询 name(姓名) 每个人总分/3 另起名为 avg_fen 分组查询GROUP BY `name`(用名字分组) having (条件) avg_fen平均分小于60分*/
10年积累的网站设计制作、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有贵德免费网站建设让你可以放心的选择与我们合作。
SELECT `name`,SUM(a+b+c)/3 as avg_fen FROM fen GROUP BY `name` having avg_fen60
select name,
100*sum(case
when mark=60
then 1 else 0
end)/count(*) 及格率
from score
group by name
没有考虑成绩表中一个人有多条课程的成绩记录的情况,应在之前查询方法上加上约束,如某班某课程中及格人数占总人数的百分比,即select (select COUNT(*) from Score where Cno=144502 and Cono=011 and Grade=60)/(select COUNT(*) from Score where Cno=144502 and Cono=011)
通常成绩表中的数据项为学号,课程号,成绩,班级号 ,当一个人选了多门课有及格的也有不及格的时,仅仅靠楼上的回答不足以完成正确的查询,查询时要注意约束条件
select convert(varchar(10),sum(case when (html+sql)/2=60 and (html+sql)/280 then 1 else 0 end)*100.0/
stucount)+'%' as 及格率,
convert(varchar(10),sum(case when (html+sql)/2=80 then 1 else 0 end)*100.0/stucount)+'%' as 优秀率
from exam e,(select count(1) as stucount from stuinfo) a