gpt4 book ai didi

MySQL - 将缺失的日期记录添加到表中

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

我有这个数据集,其中仅包含工作日的数据。其外观如下:

ID  Name        Some Val    Other Val   Date

10 Somebody 33001.93 33001.93 2018-10-01
10 Somebody 33481.93 33481.93 2018-10-02
10 Somebody 33001.93 33001.93 2018-10-03
10 Somebody 33582.76 33582.76 2018-10-04
10 Somebody 33582.73 33582.79 2018-10-05
10 Somebody 33582.76 33582.76 2018-10-08
10 Somebody 33342.76 33342.76 2018-10-09
10 Somebody 33462.76 33462.76 2018-10-10

我的计算需要填充一个月中所有天的数据。为了使数据可用,我还需要填充周末的数据。

在上述数据示例中,在本例中,需要按最后一个可用值 (2018-10-05) 复制日期 2018-10-06 和 2018-10-7 的缺失记录。因此转换后的结果数据集如下所示:

ID  Name        Some Val    Other Val   Date

10 Somebody 33001.93 33001.93 2018-10-01
10 Somebody 33481.93 33481.93 2018-10-02
10 Somebody 33001.93 33001.93 2018-10-03
10 Somebody 33582.76 33582.76 2018-10-04
10 Somebody 33582.73 33582.79 2018-10-05

10 Somebody 33582.73 33582.79 2018-10-06
10 Somebody 33582.73 33582.79 2018-10-07

10 Somebody 33582.76 33582.76 2018-10-08
10 Somebody 33342.76 33342.76 2018-10-09
10 Somebody 33462.76 33462.76 2018-10-10

我正在寻找有关如何保留丢失的记录、循环遍历所有可用行以及在丢失的位置插入行的指导。我正在考虑创建一个包含所有日期值的查找表,将它们合并,并且在没有匹配的地方,我需要插入最后一个可用值。

我在 SQL 方面的经验有限,并且来自 SAS 背景,我可能可以使用宏来完成此任务。我完全不知道如何在 SQL 中解决这个问题。

需要指导我如何继续。

最佳答案

嗯。 。 。这足够了吗?

select ID, Name, val1, val2, date
from t
union all
select id, name, val1, val2, date + interval 1 day
from t
where dayofweek(date) = 6
union all
select id, name, val1, val2, date + interval 2 day
from t
where dayofweek(date) = 6;

如果该月在周五或周六结束,则会额外增加一两天。您可以通过在子查询中使用 where 子句来解决此问题。

关于MySQL - 将缺失的日期记录添加到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53011192/

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