我在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是一种奇怪的方法,但我得到的时间戳函数过于复杂。
最有效的方法是什么?
答案 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;