Sql 使用多个但相同的聚合函数
我尝试使用两个相同的聚合函数是SQL Server,其中我在某些条件下使用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)
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,很高兴能帮助你。请不要忘记将其标记为已接受的答案:)