我有一个包含两列的MySQL表(称为Item1): “时间” [datetime]和“值” [float]。每5分钟将电表的总电量添加到数据表中,如下所示:
| Time | Value |
| 2018-07-22 21:55:00 | 202660.199951 |
| 2018-07-22 22:00:00 | 202673.899902 |
| 2018-07-22 22:05:00 | 202684.699951 |
| 2018-07-22 22:10:00 | 202691.534534 |
| 2018-07-22 22:15:00 | 202710.334253 |
如何使用一个sql查询来计算每天/每周/每月的功耗,并将结果作为新表获得。我尝试过:
SELECT * FROM Item1 WHERE HOUR(Time)=0 AND MINUTE(Time)=0
这会在每个午夜为我提供这些值,但是我如何减去这些值?
感谢您的帮助。 格雷格
答案 0 :(得分:2)
您可以使用join
:
select date(i.time), i.value, iprev.value,
(i.value - iprev.value) as diff
from item_1 i left join
item_1 iprev
on date(iprev.time) = date(i.time) - interval 1 day and
hour(iprev.time) = 0 and minute(iprev.time) = 0
where hour(i.time) = 0 and minute(i.time) = 0
group by date(i.time), i.value, iprev.value;
您将更改iprev
的时间范围以获得几周或几个月的差异。