如何将两个SQL查询与不同的条件组合在一起?

密码怪胎

我写了一个查询,可以找到特定班级性别学生的人数,但是我找不到一种可以对两种性别都可以做到的查询方法。我尝试两次编写查询(针对每个性别),然后使用UNION将它们组合在一起,但也无法做到这一点。

查询#1

SELECT MAX(Class.Class_ID) AS Class_ID,  COUNT(Enrolled_In.Reg_No) AS Male_Students
FROM Enrolled_In
INNER JOIN Class ON Enrolled_In.Class_ID = Class.Class_ID
INNER JOIN Student ON Enrolled_In.Reg_No = Student.Reg_No
WHERE Class.Class_ID = 'E-100' AND Student.Gender = 'M';

结果:

CLASS_ID MALE_STUDENTS
-------- -------------
E-100               2

查询#2

SELECT MAX(Class.Class_ID) AS Class_ID,  COUNT(Enrolled_In.Reg_No) AS Female_Students
FROM Enrolled_In
INNER JOIN Class ON Enrolled_In.Class_ID = Class.Class_ID
INNER JOIN Student ON Enrolled_In.Reg_No = Student.Reg_No
WHERE Class.Class_ID = 'E-100' AND Student.Gender = 'F';

结果:

CLASS_ID FEMALE_STUDENTS 
-------- ---------------
E-100                 1

我希望输出像这样,最好使用一个查询:

CLASS_ID MALE_STUDENTS FEMALE_STUDENTS
-------- ------------- --------------- 
E-100               2                1

谢谢。

于尔根
SELECT SUM(case when s.Gender = 'M' then 1 else 0 end) AS Male_Students,
       SUM(case when s.Gender = 'F' then 1 else 0 end) AS Female_Students
FROM Enrolled_In e
JOIN Student s ON e.Reg_No = s.Reg_No
WHERE e.Class_ID = 'E-100' 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将两个不同的表组合在一起进行查询

如何将两个通用队列组合在一起?

如何将两个具有不同行大小的数据框组合在一起?

如何将两个查询和订单数据组合在一起

如何将两个不同查询的结果与猫鼬结合在一起?

如何将这两个查询结合在一起?(MySQL)

将两个查询组合在一起以形成月份计数

如何将两个SVG路径组合在一起(无空格)

如何将两个具有相同键的数组组合在一起?

将两个具有不同位置的SQL查询组合在一起并返回唯一的行

将SQL查询组合在一起

如何返回将两个函数与两个参数组合在一起的函数

将两个SQL结果组合在一起以形成一个具有不同列名的结果集

如何在MySQL中将两个不同的表组合在一起并对其进行排序

将两个或多个线程组合在一起

将两个IQueryable组合在一起不起作用

将两个 -filter_complex 命令组合在一起

Python 以字母开头的行,将两个 for 循环组合在一起?

熊猫如何将具有复杂规则/条件的两行组合在一起

如何将2个Foreach循环与不同的数组结果组合在一起?

如何将两个下一个结合在一起

如何在sql查询的一部分中将两个foreach循环正确地组合在一起?

如何将两个用于名称和值的数组组合在一起以在php中并排对齐

如何将2个折线图组合在一起

如何将2个脚本组合在一起?

如何将 2 个选择元素组合在一起 html

如何将聚合查询与不同联接结合在一起?

golang如何将这两个功能结合在一起?

用公共行映射两个不同的数据框并将它们组合在一起