gpt4 book ai didi

mysql - sql分组计算

转载 作者:行者123 更新时间:2023-11-29 06:25:09 26 4
gpt4 key购买 nike

有人有解决方案如何使用 case 语句对两个类别的总和进行分组吗?

在下面的屏幕截图中,我想将两行合并为一行,并仅在 flag1total 和 flag2total 列中显示 PE 和 NPE 总和,但它不起作用。

这是我目前的 SQL:

select type, flag, coalesce(sum(value),0) total,
case when flag = "NPE" then coalesce(sum(value),0) else "" end as flag1total,
case when flag = "PE" then coalesce(sum(value),0) else "" end as flag2total
from maintable
group by type, flag;

screenshot

数据看起来像这样

 type     flag          value
P_OTH PE 23525
P_OTH PE 13525
P_CRE PE 232525
P_OTH PE 4525
....

预期结果是这样的(每种类型一行和标志的矢量化总和):

 type     flag          total      flag1total   flag2total
P_OTH PE, NPE 3023624 1132707 1890917

最佳答案

您需要在 sum 函数中使用 case。尝试这样的事情:

select type, coalesce(sum(value),0) total,
coalesce(sum(case when flag = "NPE" then value else 0 end),0) as flag1total,
coalesce(sum(case when flag = "PE" then value else 0 end),0) as flag2total
from maintable
group by type;

请注意,“flag”不能出现在 group by 子句中。

关于mysql - sql分组计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59862179/

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