我有一个db表,大约有50万行用户登录数据。
简单的数据库表:
users_signin:
id
userid
datetime
我想弄清楚的是如何获取特定人员登录网站的平均或最常见的一小时。
我希望返回“小时”,例如:04或23(4 am / 11pm)。
datetime
字段是unix时间戳
我已经摆弄了avg(),但只是小时是我在墙上的位置。
答案 0 :(得分:0)
如果您想要特定用户当天最常见的小时,可以尝试以下查询:
select hour(datetime) as hr, count(*)
from simple
where userid = $userid
group by hour(datetime)
order by count(*) desc
limit 1;
编辑:
如果您呼叫的事件datetime
实际上是一个unix时间,那么您应该这样做:
select hour(from_unixtime(datetime)) as hr, count(*)
from simple
where userid = $userid
group by hour(from_unixtime(datetime))
order by count(*) desc
limit 1;