最初我使用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作为值而不是总和的正确结果。我错过了什么?有什么想法吗?
答案 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中true
是1
而false
是0
。
使用此样式可以使您的代码更加整洁。