oracle 中如何将同一张表的不同查询结果放到同一张表里

例如:现在有一张表,有班级、姓名、分数 的字段,现在我要求出每个班中分数大于60分的人数和分数大于90分的人数。然后显示出一张字段为:班级、及格的人数(大于等于60)、优秀(大于等于90)的人数。该怎么做?
最新回答
渺小的秘密

2024-10-17 09:13:32

select 班级, sum(case when 分数>=60 then 1 else 0 end) as 及格人数, sum(case when 分数>90 then 1 else 0 end) as 优秀人数
from table
group by 班级
order by 班级
步信停云

2024-10-17 11:54:53

select 班机,分数,’及格’
from table
where 分数大于等于60 and 分数小于90
union
select 班机,分数,’优秀’
from table
where 分数大于90。

以上是显示具体明细的sql,如果想要人数,加个count跟group by就行了。
追问
这个方法也很不错,我之前也想过,但是查询语句如果过长的话整个语句看起来比较臃肿,所以没有采用您的方法。但依然要谢谢你!
你长了一张欠吻的嘴

2024-10-17 11:53:40

在表里多加一栏,区别是记录或结果