我需要从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');