表中有以下列:
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
";在上面的查询中,我得到了a大于b的和或计数的值。
3>1,2>1,3>2,5>3
因此,上述查询的输出将是:4
prdplus
-------
4我需要是计数值在4的计数上只有+1
这就是上面的查询,现在我需要+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
我不知道如何在case中编写大小写,包括上面的查询,因为我需要两个计数来显示在我的表中,如下所示
输出最终结果:
prdplus | plus1
----------------
4 | 2发布于 2017-01-20 06:19:03
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发布于 2017-01-20 06:23:55
看看这个。
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 plus1
FROM
(
select 2 as a , 4 as b union
select 3 , 1 union
select 4 , 4 union
select 2 , 1 union
select 3 , 2 union
select 5 , 3
)
ahttps://stackoverflow.com/questions/41757206
复制相似问题