MySQL - 获取每分钟的记录计数



我需要从MySQL日志记录表中获取每分钟的记录计数。请帮助我实现它。

应每分钟考虑一次计数。如果该分钟内没有记录,则计数应显示为 0。

请找到下表和记录集,如下所示。

表 :名:拖曳

|----------------------|---------------|-----------------|
|  InTime              |   Employee    |    Country      |
|----------------------|---------------|-----------------|
|  2019-09-18 10:00:01 |     A         |        MY       |
|  2019-09-18 10:00:10 |     B         |        UK       |
|  2019-09-18 10:00:44 |     C         |        US       |
|  2019-09-18 10:00:53 |     D         |        CN       |
|  2019-09-18 10:02:22 |     E         |        JP       |
|  2019-09-18 10:03:04 |     F         |        SG       |
|----------------------|---------------|-----------------|

记录集

|----------------------|---------------|
|  InTime              |   Count(*)    |
|----------------------|---------------|
|  2019-09-18 10:00:00 |     4         |
|  2019-09-18 10:01:00 |     0         |
|  2019-09-18 10:02:00 |     1         |
|  2019-09-18 10:03:00 |     1         |
|----------------------|---------------|

这是一次尝试:

SELECT TIME_FORMAT(SEC_TO_TIME(((TIME_TO_SEC(toStampActual)) DIV 60) * 60), '%H:%i:%s') AS InTime
, COUNT(1) AS RecordCount
FROM tlogging
GROUP BY TIME_FORMAT(SEC_TO_TIME(((TIME_TO_SEC(toStampActual)) DIV 60) * 60), '%H:%i:%s')

协助来自:

将 MySQL 中的 DATETIME 值舍入到最接近的分钟。

您可以尝试对 mysql 进行此查询

SELECT
InTime,  -- not sure about that
count(*)
FROM table
WHERE your_condition
GROUP BY 
UNIX_TIMESTAMP(InTime) DIV 60, Employee

我认为你需要这样的东西

select date_format(InTime, '%Y-%m-%d %H:%i:00') as InTime, count(*)
from tlogging
group by date_format(InTime, '%Y-%m-%d %H:%i:00');

最新更新