Вставить недостающие записи, скопировав данные из предыдущей записи - PullRequest
0 голосов
/ 19 февраля 2019

Вставить отсутствующую запись путем копирования данных из предыдущей записи.

Я хочу получить данные за последний месяц из базы данных MYSQL.Если запись не существует на определенную дату, следует вставить предыдущую запись.

Ниже запроса, который дает данные за последний месяц:

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' ?

1 Ответ

0 голосов
/ 19 февраля 2019

Запрос к базе данных

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