MySQL-获取每分钟的记录数

问题描述 投票:0回答:3

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

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

请找到下表和期望的记录集如下。

:表名称:tlogging

|----------------------|---------------|-----------------|
|  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         |
|----------------------|---------------|

sql mysql
3个回答
0
投票

这是一种尝试:

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 值舍入到最接近的分钟


0
投票

你可以尝试这个mysql查询

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

0
投票

我想你需要这样的东西

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');
© www.soinside.com 2019 - 2024. All rights reserved.