在MySQL表上每小时获取整数之和

时间:2015-02-09 21:27:08

标签: mysql sql

我在MySQL中有一个tabe id(INT),count(INT)和event_timestamp(LONG)。我正在尝试进行一个查询,它将返回每小时所有计数的总和,但我不确定要采取的路径。我已经设法获得每个人的每小时值,但这是关于它的

SELECT DISTINCT FLOOR( UNIX_TIMESTAMP( DATE_ADD( DATE_FORMAT( from_unixtime( es.event_timestamp/1000 ), "%Y-%m-%d %H:00:00" ), INTERVAL 0 MINUTE ) ) *1000 ) as t FROM metrics.event_summary es;

我知道解析SQL是一种奇怪的方法,但我得到的时间戳函数过于复杂。

最有效的方法是什么?

1 个答案:

答案 0 :(得分:1)

如果你有一个Unix时间戳,只需要除以60 * 60或60 * 60 * 1000(取决于它是以秒还是毫秒为单位)。

select floor(es.event_timestamp/(1000*60*60)) as hour_timestamp,
       sum(`count`) as cnt
from metrics.event_summary es
group by floor(es.event_timestamp/(1000*60*60))
order by hour_timestamp;