mysql按日聚合数据_mysql – 根据时间戳按小时聚合数据

这一定是一件普通的事情,但是我被困住了.

我有一些可以像这样简化的数据:

id user unixtime

-----------------------

1 dave 1335312057

2 dave 1335312058

3 steve 1335312128

等等

到目前为止,我只需要按天聚合,所以我一直在使用:

SELECT

UNIX_TIMESTAMP(DATE(FROM_UNIXTIME(unixtime))) AS time,

count(c.user) AS count

FROM core c

GROUP BY DATE(FROM_UNIXTIME(unixtime))

我已经尝试使用CONCAT与DATE和HOUR,但是不能让它按预期工作 – 任何想法?

解决方法:

SELECT

DATE(FROM_UNIXTIME(unixtime)) as date,

HOUR(FROM_UNIXTIME(unixtime)) AS hour,

count(c.user) AS count

FROM core c

GROUP BY 1,2

如果您希望将小时作为unix时间戳,请将此查询包装起来以获取它:

SELECT UNIX_TIMESTAMP(DATE_ADD(the_date, INTERVAL the_hour HOUR)), the_count

from (select

DATE(FROM_UNIXTIME(unixtime)) as the_date,

HOUR(FROM_UNIXTIME(unixtime)) as the_hour,

count(c.user) AS the_count

FROM core c

GROUP BY 1,2

) x

注意:在列名上使用the_前缀可避免保留字出现问题

标签:mysql

来源: https://codeday.me/bug/20190517/1124012.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值