表产品中有以下列:
a | b | cat
--------------
2 | 4 | 1
3 | 1 | 1
4 | 4 | 1
2 | 1 | 1
3 | 2 | 1
5 | 3 | 1
8 | 7 | 2
5 | 3 | 2
$sql = "SELECT
SUM(CASE
WHEN
cat = 1
AND
a > b
THEN 1 else 0 end) as prdplus
FROM product
";
in above query i am getting value for sum or count of a greater then b
这是 3>1 , 2>1 , 3>2 , 5>3
因此上述查询的输出将是:4
prdplus
-------
4
what i need is count value have only +1 in above count of 4
这就是上面的查询,现在我需要 +1 值计数
3-1 = 2
2-1 = 1 // just explanation purpose , output i need in -> plus1
3-2 = 1 // just explanation purpose , output i need in -> plus1
5-3 = 2
因此对于上述查询,我只需要 +1 计数,即 2
我不知道如何在包含上述查询的情况下编写案例,因为我需要两个计数都显示在我的表格中,如下所示
最终输出:
prdplus | plus1
----------------
4 | 2
最佳答案
SELECT SUM(CASE WHEN a > b
THEN 1
else 0
end) as prdplus,
SUM(CASE WHEN a - b = 1
THEN 1
else 0
end) as prdplus1
FROM product
关于mysql - MYSQL 中 CASE 内 CASE 的 SUM/COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41757206/