You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL GROUP BY结合CASE统计学生成绩通过/失败人数异常问题

问题解决:分组统计成绩通过/未通过人数的异常修复

你的问题出在分组依据错误:你用原始字段FinalGradeStudent做分组,这会把每个不同的成绩值单独拆成一组——比如成绩3、4、5会各自生成一个Passed行,成绩1、2生成Failed行,最终就出现了多行重复分类的结果。

正确的SQL写法

有两种可行的修正方式:

方式1:直接分组CASE表达式的结果

SELECT 
    CASE WHEN FinalGradeStudent >= 3 THEN 'Passed' ELSE 'Failed' END Performance,
    COUNT(*) Estudents
FROM Grade
GROUP BY CASE WHEN FinalGradeStudent >= 3 THEN 'Passed' ELSE 'Failed' END

方式2:分组查询结果的别名(多数数据库支持)

如果你的数据库支持在GROUP BY中使用SELECT里的别名(比如MySQL、PostgreSQL、SQL Server 2008+等),可以用更简洁的写法:

SELECT 
    CASE WHEN FinalGradeStudent >= 3 THEN 'Passed' ELSE 'Failed' END Performance,
    COUNT(*) Estudents
FROM Grade
GROUP BY Performance

效果说明

这两种写法都会按照你定义的Performance类别(Passed/Failed)来分组统计,最终得到你期望的两行结果:一行是Passed对应3人,另一行是Failed对应5人。

内容的提问来源于stack exchange,提问作者Andres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:00:22