如何在MySQL中总结一个或另一个案例?

时间:2015-03-18 23:10:07

标签: mysql

最初我使用SUM()函数来计算出现次数,我使用的代码如下所示:

SELECT
        SUM(IF(p.FININTER = 1,1,0)) AS Internacionales,
        SUM(IF(p.FININTERNG = 1,1,0)) AS 'Internacionales NG'

这很好用。

现在我想将两种不同情况的结果合二为一。我无法让它发挥作用。到目前为止,我有以下内容:

SUM(IF(p.FININTER = 1,1,0)) OR SUM(IF(p.FININTERNG = 1,1,0)) AS Internacionales,

没有错误但是我只得到1作为值而不是总和的正确结果。我错过了什么?有什么想法吗?

2 个答案:

答案 0 :(得分:1)

SUM(IF(p.FININTER = 1 or p.FININTERNG = 1,1,0)) AS Internacionales

SUM(p.FININTER = 1 or p.FININTERNG = 1) AS Internacionales

SUM(case when p.FININTER = 1 or p.FININTERNG = 1 then 1 end) AS Internacionales

答案 1 :(得分:1)

Mysql允许更简单的语法:

SUM(p.FININTER = 1 OR p.FININTERNG = 1)

在mysql中,对布尔值求和与计算它的真实次数相同,因为在mysql中true1false0

使用此样式可以使您的代码更加整洁。