gpt4 book ai didi

mysql - SQL递归插入

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

一些上下文,我有一个包含三列date、user_id、amount的表,其中date存储客户user_id制作的日期购买 amount 美元。

我想要的是制作一个新表,其中包含客户每天花费的总金额。

例如,对于某个特定客户,在第一天(新表的第一行),总计将只是发生的金额的总和在第 0 天和第 1 天之间,对于第二天,它将是第 0 天和第 2 天之间的时间段的总和,如下所示:

(第 1 天的总计)+ 总和(从第 1 天到第 2 天)。

因此,一般来说,第 n 天的总计是:

(第 n-1 天的总计)+ sum(第 n-1 天和第 n 天之间发生的金额)

我想知道是否有一种方法可以使用 sql 定义这种递归结构,或者是否有人可以为我指出正确的方向。希望这一切都有道理。谢谢。

最佳答案

在 MySQL 8+ 中,您只需使用窗口函数:

select t.*,
sum(amount) over (partition by user_id order by date) as running_amount
from t;

关于mysql - SQL递归插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54833177/

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