Mysql 专家意见查询有可能吗

Mysql 专家意见查询有可能吗,mysql,Mysql,我有一个名为students的表,其中包含学生详细信息id、mark、name 我想获得学生人数,通过的学生人数(分数可用),不通过的学生人数 低于50分未通过,高于50分通过 使用子查询、联接或联合,是否可以在单个查询中获得3个计数,而不使用子查询、联接或联合 SELECT COUNT(*) TotalStudents, SUM(CASE WHEN Mark >= 50 THEN 1 ELSE 0 END) TotalPassed, SUM(CASE W

我有一个名为
students
的表,其中包含学生详细信息
id、mark、name

我想获得
学生人数
通过的学生人数
(分数可用),
不通过的学生人数

低于50分未通过,高于50分通过


使用
子查询、联接或联合
,是否可以在单个查询中获得
3个计数
,而不使用
子查询、联接或联合

SELECT  COUNT(*) TotalStudents,
        SUM(CASE WHEN Mark >= 50 THEN 1 ELSE 0 END) TotalPassed,
        SUM(CASE WHEN Mark < 50 THEN 1 ELSE 0 END) TotalFailed
FROM    students
选择COUNT(*)TotalStudents,
总和(如果标记>=50,则为1,否则为0结束)总计已通过,
总和(如果标记小于50,则为1,否则为0结束)总计失败
来自学生

@astander如果不使用group by,我的意思是count(*),它会工作吗?@Harish,是的,它会工作,因为您实际上没有按任何东西进行分组。我遇到一个错误#1140-如果没有group by子句,将group列(MIN()、MAX()、count()、…)与任何group列混合是非法的。您希望检索整个表中的此结果,正确吗?计数和求和是组函数。COUNT(*)将对表中的所有行进行计数,其中的总和将添加大小写等于1的所有行。如您所见,总和与计数标记大于或等于50的所有行相同。case stament根据行中的标记条目生成1或0,然后我们将它们相加。