【问题标题】:Insert missing records by copying data from previous record通过从以前的记录中复制数据来插入缺失的记录
【发布时间】:2019-02-19 10:01:34
【问题描述】:

通过复制先前记录的数据来插入缺失记录。

我想从 MySQL 数据库中获取过去一个月的数据。 如果记录在特定日期不存在,则必须插入以前的记录。

以下查询提供过去 1 个月的数据:

select Date(TimeStamp),NodeName,CPUUtilization 
from xyz 
where timestamp >= last_day(now()) + interval 1 day - interval 1 month 
group by DATE(TimeStamp);

但是缺少的记录需要与以前的数据一起插入

实际结果:

+-----------------+---------------------------+
| Date(TimeStamp) | NodeName| CPUUtilization  |
+-----------------+---------------------------+
| 2019-02-01      | Node   |          16.82 |
| 2019-02-02      | Node   |          16.84 |
| 2019-02-04      | Node   |             17 |
| 2019-02-07      | Node   |          17.16 |
| 2019-02-10      | Node   |          17.17 |

预期结果

+-----------------+---------------------------+
| Date(TimeStamp) | NodeName| CPUUtilization  |
+-----------------+---------------------------+
| 2019-02-01      | Node   |          16.82 |
| 2019-02-02      | Node   |          16.84 |
| 2019-02-03      | Node   |          16.84 |
| 2019-02-04      | Node   |             17 |
| 2019-02-05      | Node   |             17 |
| 2019-02-06      | Node   |             17 |
| 2019-02-07      | Node   |          17.16 |
| 2019-02-08      | Node   |          17.16 |
| 2019-02-09      | Node   |          17.16 |
| 2019-02-10      | Node   |          17.17 |

这里,缺少2019-02-03日期记录。它必须复制以前的记录数据 截至'2019-02-02'?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    数据库查询

    SELECT Date(TimeStamp),NodeName,CPUUtilization 
    from xyz WHERE timestamp BETWEEN (CURRENT_DATE() - INTERVAL 1 MONTH) AND CURRENT_DATE();
    

    【讨论】:

    • 这与我在问题中发布的查询相同
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多