gpt4 book ai didi

sql - postgres查找同一列数字之间的差异

转载 作者:行者123 更新时间:2023-11-29 14:05:46 25 4
gpt4 key购买 nike

我有一个像下面这样的表格

| date       | key | value |   |
|------------|-----|-------|---|
| 01-01-2009 | a | 25 | |
| 01-01-2009 | b | 25 | |
| 01-01-2009 | c | 10 | |

我正在尝试提出一个查询,它允许我每天执行 (a+b)-c - 但我的加入正在执行此操作 (a+b +c)-c

with total as (
select
sum(value),
date
from
A
where
key in ('a',
'b')
group by
date )
select
sum(total.sum) as a, sum(A.value) as b,
sum(total.sum) - sum(A.value) as value,
A.date
from
A
join total on
total.date = A.date
where
A.key = 'c'
group by
A.date

这给我一个值 50(它应该是 40)——我的 C 值在连接期间被计算为总表的一部分

我做错了什么?

最佳答案

简单地进行条件聚合怎么样?

select date,
sum(case when key in ('a', 'b') then value
when key in ('c') then - value
end) as daily_calc
from a
group by date;

join 似乎对这个计算没有太大帮助。

关于sql - postgres查找同一列数字之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56656345/

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