gpt4 book ai didi

sql - Postgres 使用窗口函数计算差异

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

如果问题太基础,我提前道歉。窗口函数既有趣又具有挑战性!

我有两个 Postgres 表,如下所示,名为 client 和 order。

id | name
------------
41 | james
29 | melinda
36 | henry
...

id | date | volume | client_id
------------------------------
328 | 2018-01-03 | 16 | 41
411 | 2018-01-29 | 39 | 29
129 | 2018-01-13 | 73 | 29
542 | 2018-01-22 | 62 | 36
301 | 2018-01-17 | 38 | 41
784 | 2018-01-08 | 84 | 29
299 | 2018-01-10 | 54 | 36
300 | 2018-01-10 | 18 | 36
178 | 2018-01-30 | 37 | 36
...

a) 我如何编写查询来找出每个客户订单量的最大差异?例如,client_id = 36 应显示 (54 + 18) - 37 = -35。这是因为同一客户在同一天下的订单应计为一个订单。

b) 如何找到每个客户的两个最近订单之间的交易量差异?例如,client_id = 29 应该显示 39 - 73 = -34

最佳答案

这是一个 T-SQL。
对于您所说的这个公式---> Max(每天的总体积)- Min(每天的总体积)
可能对你有帮助。

SELECT (X.Max(SumV)-X.Min(SumV))
From (
SELECT Client_Id,Date,SUM(Volume) AS SumV
FROM Orders
GROUP BY Client_id,Date
) X

Group by X.Client_Id

关于sql - Postgres 使用窗口函数计算差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53124439/

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