j20服役了吗:SQL语句超人,现身吧!

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 07:48:58
姓名 班级 成绩
A 1.1 合格
B 1.1 合格
C 1.2 不合格
D 1.2 不合格
E 1.1 不合格
F 1.1 合格
G 1.2 合格
... ... ...

上表中,想获得某班合格数是否大于不合格数,如果大于输出合格,不大于输出不合格

也就是说,这个班合格同学大于不合格同学,那么整个班的成绩就为合格,反之不合格.如何求?

select * from .....where.......不会了,帮帮我吧!

不是很难吧,这样就可以了。

select 班级,(case when sum(case 成绩 when '合格' then 1 else -1 end)>0 then '合格' else '不合格' end)as 成绩 from cj group by 班级

查询上面那个表输出
班级 成绩
1.1 合格
1.2 不合格

select count(*) as 合格人数 from 表名 where 成绩=“合格” group by 班级
这个语句会得出:
班级 合格人数
1.1 3
1.2 1

其他相似,你自己揣测吧