【问题标题】:MySQL Sum of IF statementMySQL IF 语句的总和
【发布时间】:2017-01-09 22:46:03
【问题描述】:

到目前为止,我有这个工作查询,它​​对按序列号分组的检查次数求和,然后减去通过检查的总和 ('P')。如果通过的次数等于检查的次数,那么这被认为是整体通过,我们分配值为 1,否则为 0。

SELECT IF(SUM(CASE 
             WHEN i.inspect_result IN ('P','F') THEN 1
             ELSE 0
           END) -

        SUM(CASE 
             WHEN i.inspect_result ='P' THEN 1
             ELSE 0
           END)=0,1,0) as Results 

 FROM inspections i WHERE workorder_id=5 GROUP BY serial_no 

这会产生这样的结果

-------------
Results
-------------
1
0
1
1
0
0
1
1
1
0
etc. 

我想做的是对结果求和。我尝试使用 SELECT SUM(existing query) 封装整个查询,但无法使其正常工作。

【问题讨论】:

    标签: mysql count sum case


    【解决方案1】:

    你能试试下面的查询吗:

    SELECT SUM(Results)
    FROM (
    SELECT IF(SUM(CASE 
                 WHEN i.inspect_result IN ('P','F') THEN 1
                 ELSE 0
               END) -
    
            SUM(CASE 
                 WHEN i.inspect_result ='P' THEN 1
                 ELSE 0
               END)=0,1,0) as Results 
    
     FROM inspections i WHERE workorder_id=5 GROUP BY serial_no
    ) a
    

    这里是简单的SQL Fiddle

    【讨论】:

      猜你喜欢
      • 2021-03-13
      • 2012-04-12
      • 2016-01-11
      • 2013-05-15
      • 2011-02-08
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多