sql - 使用多个但相同的聚合函数
问题描述
我正在尝试使用两个相同的聚合函数是 SQL Server,我在其中使用COUNT(A)
某些条件和COUNT(A)
另一种条件。
例如我想统计所有参加课程 ABC 的学生,第二次统计我想统计所有成绩为 A 并且参加过同一课程 ABC 的学生。
但是结果COUNT
将在同一张表上但在不同的列上,是否可以这样做以及如何实现它。谢谢。
我想要结果表
解决方案
利用conditional aggregation
select name, count(*) as all_student,
count(case when grade='A' then 1 end) as cnt_A,
count(case when grade='B' then 1 end) as cnt_B
from course_table c inner join student_table s on c.name=s.course
group by name
推荐阅读
- amazon-ec2 - 正确离开 AWS EC2 实例
- amazon-web-services - 刷新 EC2 实例标签失败:SharedCredsLoad
- julia - 如何为正在开发的 Julia 项目下载和设置依赖项?
- laravel - Laravel 与 Litespeed 和 Apache2 和 ProxyPass 在登录后给出 403
- azure - 如何按用户分组并在 U-SQL 中创建具有值的列?
- jquery - 如何将 jquery 变量导出为 html 文件
- python - 将键值对存储为列表理解
- angular - 无法检索数组值
- php - 如何在 mysql 中创建表并更新后元表,例如 sku 行、价格、库存
- contextmenu - 如何完全禁用页面上的拼写检查?