gpt4 book ai didi

Postgresql - 每天的部分总和和一次查询中的总和

转载 作者:行者123 更新时间:2023-11-29 14:08:20 27 4
gpt4 key购买 nike

我有一个包含相应时间戳的不同交易的表格:

表:交易

Recipient   Amount    Date
--------------------------------------------------
Bob 52 2019-04-21 11:06:32
Jack 12 2019-06-26 12:08:11
Jill 50 2019-04-19 24:50:26
Bob 90 2019-03-20 16:34:35
Jack 81 2019-03-25 12:26:54
Jenny 53 2019-04-20 09:07:02
Jenny 5 2019-03-29 06:15:35

现在我想获取 Jack 今天和整体的所有交易:

结果

Person   Amount_Today   Amount_Overall             
-----------------------------------------------
Jack 12 93

在 postgresql 中实现此目的的最有效方法是什么?目前我运行两个查询 - 这个是针对 Amount_Today 的:

select Recipient, sum(Amount)
from Transactions
where Recipient = 'Jack'
and created_at > NOW() - INTERVAL '1 day'

但这似乎不是正确的方法。

最佳答案

您可以使用过滤子句:

select Recipient, 
sum(Amount) as Amount_Overall,
sum(Amount) FILTER (WHERE created_at > NOW() - INTERVAL '1 day') as Amount_Today
from Transactions
where Recipient = 'Jack'
GROUP BY recipient;

您可能已经意识到这一点,但是 now() - interval '1 day' 并不是真正的今天,而是过去 24 小时。如果您只需要今天,可以使用 date_trunc。

关于Postgresql - 每天的部分总和和一次查询中的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56773392/

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