【发布时间】:2013-01-07 10:02:07
【问题描述】:
我一直在阅读其他问题,但没有运气。我有一个包含列(邮票,价值)的表格。 'stamp' 列存储每小时的时间戳。我要做的是根据查询中指定的时间戳范围以 24 小时为间隔检索 SUM(value):
SELECT stamp,
Sum(value)
FROM table
WHERE stamp >= Date_sub('2012-12-02 05:00:00', INTERVAL 1 day)
AND stamp < '2013-01-01 05:00:00'
GROUP BY Date(stamp)
我正在寻找的结果如下所示:
stamp value
2012-12-02 05:00:00 12024
2012-12-03 05:00:00 11211
2012-12-04 05:00:00 19834
...
2013-01-01 05:00:00 10232
实际表格如下:
stamp value
2012-12-01 01:00:00 345
2012-12-01 02:00:00 100
2012-12-01 03:00:00 104
2012-12-01 04:00:00 103
2012-12-01 05:00:00 101
2012-12-01 06:00:00 102
...
2013-01-01 05:00:00 207
2013-01-01 06:00:00 307
2013-01-01 07:00:00 223
...
*注意戳列的数据类型是时间戳
【问题讨论】:
-
那么返回的
stamp是否高于每个日期组的最早时间戳? -
请不要选择不在您的
GROUP BY中的列。 MySQL 扩展了这个功能,但它的行为并不准确,应该避免。 -
尽可能使用
x BETWEEN y AND z而不是x >= y AND x <= z。 -
上面返回的戳记是每个日期组最近的戳记。前任。将 2012-12-01 05:00:00 到 2012-12-02 05:00:00 的所有值求和。
-
抱歉,我编辑了帖子,因为我有一个关于“日期(邮票)”的输入错误
标签: mysql group-by timestamp intervals