例如:现在有一张表,有班级、姓名、分数 的字段,现在我要求出每个班中分数大于60分的人数和分数大于90分的人数。然后显示出一张字段为:班级、及格的人数(大于等于60)、优秀(大于等于90)的人数。该怎么做?
select 班级, sum(case when 分数>=60 then 1 else 0 end) as 及格人数, sum(case when 分数>90 then 1 else 0 end) as 优秀人数from tablegroup by 班级order by 班级
select 班机,分数,’及格’from tablewhere 分数大于等于60 and 分数小于90unionselect 班机,分数,’优秀’from tablewhere 分数大于90。以上是显示具体明细的sql,如果想要人数,加个count跟group by就行了。 追问 这个方法也很不错,我之前也想过,但是查询语句如果过长的话整个语句看起来比较臃肿,所以没有采用您的方法。但依然要谢谢你!