SQL:通过SQL查询获取电表的每日/每周/每月消耗

时间:2018-07-22 20:34:37

标签: mysql sql

我有一个包含两列的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

这会在每个午夜为我提供这些值,但是我如何减去这些值?

感谢您的帮助。 格雷格

1 个答案:

答案 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的时间范围以获得几周或几个月的差异。