我需要从 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 |
|----------------------|---------------|
这是一种尝试:
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查询
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');