【发布时间】:2017-06-01 08:36:31
【问题描述】:
我有一个MySql 表:
+--------------------+----------------+
| datetime | energy |
+--------------------+----------------+
| 2010-06-15 10:00:00| 1|
| 2010-06-15 10:15:00| 3|
| 2010-06-15 10:30:00| 6|
| 2010-06-15 10:45:00| 7|
| 2010-06-15 11:00:00| 9|
| 2010-06-15 11:15:00| 12|
| 2010-06-15 11:30:00| 15|
| 2010-06-15 11:45:00| 28|
| 2010-06-15 12:00:00| 52|
| 2010-06-15 12:15:00| 75|
| 2010-06-15 12:30:00| 88|
| 2010-06-15 12:45:00| 102|
| 2010-06-15 13:00:00| 150|
| 2010-06-15 13:15:00| 189|
| 2010-06-15 13:30:00| 200|
| 2010-06-15 13:45:00| 205|
| 2010-06-15 14:00:00| 209|
| 2010-06-15 14:15:00| 400|
| 2010-06-15 14:30:00| 450|
| 2010-06-15 14:45:00| 480|
| 2010-06-15 15:00:00| 500|
+--------------------+----------------+
我将获得每小时的产量作为每小时的最大值和最小值之间的差:
示例:
第 10 小时的生产由 prod 给出。 11 小时(值 = 9)的产量减少 10 小时(值 = 1)-> 结果 = 8
预期结果
+--------------+----------------+
| datetime | energy |
+--------------+----------------+
| 2010-06-15 10| 8|
| 2010-06-15 11| 43|
| 2010-06-15 12| 98|
| 2010-06-15 13| 69|
| 2010-06-15 14| 291|
+--------------+----------------+
select max(energy) - min(energy)
FROM tableA
group by hour(datetime)
此查询不起作用,因为在 10:45 和 10:00 之间产生差异(不是 11:00 和 10:00)
有什么建议吗?
【问题讨论】:
-
你想要最大值和最小值之间的差异,还是一小时开始和下一小时开始之间的差异?
-
能量总是在增加,所以它们是一回事吗?
-
我想要最大值和最小值之间的差异,即使能量总是在增加,因为有时可能会丢失样本。
标签: mysql sql datetime group-by