Sql 使用多个但相同的聚合函数

Sql 使用多个但相同的聚合函数,sql,sql-server,aggregate-functions,Sql,Sql Server,Aggregate Functions,我尝试使用两个相同的聚合函数是SQL Server,其中我在某些条件下使用COUNT(A),在另一个条件下使用COUNT(A) 例如,我想计算所有参加ABC课程的学生人数,第二次我想计算所有参加ABC课程的A级学生人数 但是计数的结果将在同一个表上,但在不同的列上,是否可以这样做,以及如何实现它。谢谢 我想要结果表 使用条件聚合 select name, count(*) as all_student, count(case when grade='A' then 1 end)

我尝试使用两个相同的聚合函数是SQL Server,其中我在某些条件下使用
COUNT(A)
,在另一个条件下使用
COUNT(A)

例如,我想计算所有参加ABC课程的学生人数,第二次我想计算所有参加ABC课程的A级学生人数

但是
计数的结果将在同一个表上,但在不同的列上,是否可以这样做,以及如何实现它。谢谢

我想要结果表


使用
条件聚合

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

请以表格形式提供一些示例数据和所需的输出。一些快速的事情会有所帮助。首先,您在问题中标记了sql server,但根据您的问题,它是MySQL。它们是不同的数据库,因此建议更新标记。第二,如果你能提供输入和输出数据集的样本,这将帮助我们更快地提供答案。好的,非常感谢,我已经尝试过了,而且很有效。谢谢@fahmi@mtirtapradja,很高兴能帮助你。请不要忘记将其标记为已接受的答案:)