SQL语句求助,查询出每门课程及格和不及格的人数
发布网友
发布时间:2022-04-07 20:00
我来回答
共7个回答
热心网友
时间:2022-04-07 21:30
select a.score ,count as 人数 ,col2 as 科目 from
(select case when col1>=60 then '及格' else '不及格' end as score ,col2 from tb g )
a group by a.score,a.col2
热心网友
时间:2022-04-07 22:48
select 课程名称,Count(*) as 及格人数 from 成绩表 where 分数 >= 60 group by 课程名称
select 课程名称,Count(*) as 不及格人数 from 成绩表 where 分数 < 60 group by 课程名称
热心网友
时间:2022-04-08 00:22
---以下在SQL2005执行通过--
---结果将以 科目、及格数、不及格数 显示
select * from
(select col2,count(*) as [及格数]
from tb
where col1>=60
group by col2
)t
outer apply
(select count(*) as [不及格数]
from tb
where col1<60 and t.col2= col2
group by col2
)m
-----这应该是楼主想要的了吧。
热心网友
时间:2022-04-08 02:14
SELECT 课程,
(COUNT(*) - SUM(CASE WHEN 成绩 < 60 THEN 1 ELSE 0)) AS 及格人数,
SUM(CASE WHEN 成绩 < 60 THEN 1 ELSE 0)) AS 不及格人数
FROM 成绩表
GROUP BY 课程
热心网友
时间:2022-04-08 04:22
用一条语句不好查,本身就是两个条件,又返回的两个结果,怎么用一条语句?
热心网友
时间:2022-04-08 06:46
哎,你把表结构列出来嘛..
热心网友
时间:2022-04-08 09:28
表结构什么样的啊?及格不及格条件呢?