mysql - 计算表中每月的平均小时数

标签 mysql

我有一个名为“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/

相关文章:

PHP ."INSERT INTO"通过 PHP mysqli_query 运行两次!

PHP:在 var 中使用字段名进行 MySQL 查询

mysql:检查两个日期之间的间隔是否小于1秒

php - 如何动态命名生成的 PHP 表格单元格

sql - 让 MySQL 显示每个用户的评分,然后使用评分对结果进行排序?

java - 使用子选择插入 - 原子操作?

php - codeigniter 事件记录不返回预期结果

mysql - 如何在 MySQL 中使用从 SELECT IF 返回的 bool 值

当列包含 utf-8 字符时 MySQL 查询返回错误数据

php - 如何插入带有单引号 ' 符号的字符串