选择具有公式计算的sql server

选择具有公式计算的sql server,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,这是我桌上的数据 然后我想得到一份像下图一样的报告 对于标志“批准”,如果第1列=批准,如果第0列=未批准。非常感谢。如果有人能帮我的话?您可以使用聚合来完成此数据透视 假设“批准”标志只能为1或0,则可以执行以下操作: selct school, count(*) as total_count, sum(flag_approve) as approved, sum(1 - flag_approve) as not_approved from your_table g

这是我桌上的数据

然后我想得到一份像下图一样的报告


对于标志“批准”,如果第1列=批准,如果第0列=未批准。非常感谢。如果有人能帮我的话?

您可以使用聚合来完成此数据透视

假设“批准”标志只能为1或0,则可以执行以下操作:

selct school,
    count(*) as total_count,
    sum(flag_approve) as approved,
    sum(1 - flag_approve) as not_approved
from your_table
group by school;

只需按学校分组,然后计算您的列,如:

计数器
是一个简单的
计数(*)

approve
flag\u approve的
总和

non\u approve
是具有
标志\u approve=0的所有行的
SUM

   SELECT school 
         ,COUNT(*) AS ctr
         ,SUM(flag_approve = 1) AS approve
         ,SUM(IIF(flag_approve = 0, 1, 0)) AS non_approve
     FROM yourtable
 GROUP BY school 

只需运行以下命令:



你好谢谢你的回答。你能补充一些关于代码的解释吗?
  select school, 
         count(school) as count, 
         sum(flag_aprove) approve, 
         sum(case 
               when flag_aprove = 0 then 
                 1 
               else 
                 0 
             end) non_approved 
    from tes 
group by school