In baza de date, inserez randuri o data la 5 minute. Avand timestamp-urile vreau sa calculez diferenta intre randul curent si randul precedent curent - previous
Tabelul are urmatoarele date. Ignorati secunda si milisecunda.
231 | 433 | 2020-03-22 14:07:36.661664 |
---|---|---|
296 | 433 | 2020-03-22 19:55:00.324456 |
297 | 433 | 2020-03-22 20:00:00.363889 |
298 | 440 | 2020-03-22 20:05:00.321905 |
299 | 433 | 2020-03-22 20:10:00.336552 |
300 | 433 | 2020-03-22 20:20:00.399065 |
301 | 433 | 2020-03-22 20:25:00.233915 |
De calculat diferenta, am calculat-o cu query (cu putin Google ) De asemenea id-urile nu sunt neaparat in ordine.
select curr.date, (curr.cases - prev.cases) as delta,
curr.cases, prev.cases
from rocases curr
left join rocases prev
on prev.date = (
select max(roc.date)
from rocases roc
where roc.date < curr.date
)
group by delta
order by curr.date;
Si afiseaza tabelul de mai jos.
Sunt curios ce alte idei mai sunt.
Eu am facut pentru Mysql 5.7, dar subiectul nu este limitat doar la el. Poate fi orice dialect sql pentru orice baza de date.
PS: Sky is the limit!