我有一个名为“loginhistory”的表,我需要计算该月最活跃的时间。我该怎么做?
我的表结构是: id、userId、日期(日期时间)、ip。
我尝试用 PHP 来做,但也没有成功。我更喜欢只在 MySql 中完成计算。
我希望输出只是最活跃小时的数字。
最佳答案
如果需要选择活跃时间,检查平均数并不重要。
原因平均值=计数/天
并且由于整个计算的天
是相同的(假设30
)最大的计数
将是列表中的活跃时间。
只需按日期范围选择并按小时分组,然后从降序排列中选择第一个:
SELECT
HOUR(date) AS hour,
COUNT(id) AS logins,
( COUNT(id) / DAY(LAST_DAY('2019-01-01')) ) AS logins_avg
FROM loginhistory
WHERE
date >= '2019-01-01 00:00:00' AND date < '2019-02-01 00:00:00'
GROUP BY HOUR(date)
ORDER BY logins DESC LIMIT 1
关于mysql - 计算表中每月的平均小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54611282/