mysql 如何将更改日志转换为每周记录

vcirk6k6  于 2023-05-21  发布在  Mysql
关注(0)|答案(1)|浏览(188)

这是相当具体的,但基本上我有一个历史的财产被改变
| 价值|变更日期|
| --------------|--------------|
| 二千年|五月八日|
| 一万|五月十日|
我想创建一个每周快照视图
5月15日至10000
我已经创建了一个表,给我这样的每周日期,5月1日5月8日5月15日...
我尝试将该表连接到具有更改历史的表中,其中Weekly Date >=更改日期,但最终得到重复的记录,如
五月八日至二零零零年五月十五日至二零零零年五月十五日至一万
--用更新后的值“替换”以前的值的最佳方法是什么,这样我最终会得到一个“快照”视图?
这很难解释,所以如果有人有任何问题,请联系LMK。提前感谢帮助🙏🏼

anhgbhbe

anhgbhbe1#

我想你问的是如何让数据滞后?这样的东西可能会起作用:

SELECT 
    WeeklyDate,
    COALESCE(Value, LAG(Value) OVER (ORDER BY ChangeDate)) AS SnapshotValue
FROM 
    --[enter your table name]
ORDER BY 
    ChangeDate;

这假定您的数据按更改日期升序排序;这对于LAG()函数正确工作很重要。
使用LAG()函数通过合并函数获取前一个值(如果当前值不为空,则使用它,如果为空,则使用前一个值)。

相关问题