gpt4 book ai didi

mysql group by aggregation as 列

转载 作者:行者123 更新时间:2023-11-29 02:51:13 25 4
gpt4 key购买 nike

我有一个包含两个相关字段 namevalue 的表。我想进行一个查询,为我提供每个名称的所有负值和所有正值的总和。

我得到的最好的是以下代码:

SELECT `name`,sign(`value`),sum(`value`)
FROM `testing`
WHERE `value` != 0
GROUP BY `name`,sign(`value`)

它给了我这些结果:

name | sign(`value`) | sum(`value`)
-----------------------------------
A | -1 | -9
A | 1 | 21
B | -1 | -35
B | 1 | 8
C | -1 | -16
C | 1 | 21

哪些是我想要但不是我想要的结果。

我能不能让它看起来像这样?

name |  -1  |   1
-------------------
A | -9 | 21
B | -35 | 8
C | -16 | 21

这是我的第一个问题,所以我希望我没有以完全羞辱的方式写它。

提前致谢。

最佳答案

case 语句在这种情况下会派上用场。

select name,
sum(case when value > 0 then value else 0 end) as positive_sum,
sum(case when value < 0 then value else 0 end) as negative_sum
from testing
group by name;

关于mysql group by aggregation as 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35445196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com