我知道这是一个愚蠢的解决方案,但抱歉,我有点困惑。
我有两个 SELECT COUNT 语句。示例:
声明 1
SELECT COUNT(softwareone) AS totalcount
FROM my_table WHERE softwareone LIKE '%typeone%'
总数 = 3 _
声明 2
SELECT COUNT(softwaretwo) AS totalcount
FROM my_table WHERE softwaretwo LIKE '%typeone%'
总计数 = 1
我想将两个总数相加得到 totalcount = 4。有办法做到这一点吗?
注意:“softwareone”和“softwaretwo”列中的软件类型属于同一类型(相同值)。
感谢大家。
最佳答案
一种方法是这样写:
SELECT SUM(CASE WHEN softwareone LIKE '%typeone%'
AND softwaretwo LIKE '%typeone%'
THEN 2
ELSE 1
END
) AS "totalcount"
FROM my_table
WHERE softwareone LIKE '%typeone%'
OR softwaretwo LIKE '%typeone%'
;
当两个条件都满足时,CASE ... END
表达式的计算结果为 2
(因此如果 softwareone
和 softwaretwo
都是 LIKE '%typeone%'
,则该行计数两次)和 1
只有其中一个时。因此,SUM(CASE ... END)
给出满足一个条件的总行数,加上满足另一个条件的总行数。
关于两条 COUNT 语句的 MySQL 总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9775842/