我们的一个任务系统,使用数据库去针对任务执行的情况进行记录。每个任务在执行...
任务执行结果表的结构如下:
TABLE `eo_task_report` (
`id` bigint(10) NOT NULL AUTO_INCREMENT,
`taskId` bigint(10) NOT NULL COMMENT '任务id,关联任务表id',
`executeNo` bigint(20) NOT NULL COMMENT '执行编号,每次生成后,加1',
`executeTime` datetime NOT NULL COMMENT '执行时间',
`isValid` tinyint(3) NOT NULL DEFAULT '1' COMMENT '是否有效,1-有效;0-无效。默认为0'
PRIMARY KEY (`id`),
id | taskId | executeNo | executeTime | isValid |
1 | 1001 | 1 | 2019-05-08 19:05:12 | 1 |
2 | 1001 | 2 | 2019-05-08 20:05:12 | 1 |
3 | 1002 | 1 | 2019-05-08 19:05:12 | 1 |
4 | 1001 | 3 | 2019-05-08 21:05:12 | 1 |
5 | 1003 | 1 | 2019-05-09 10:28:20 | 1 |
6 | 1003 | 2 | 2019-05-09 19:28:20 | 1 |
1: select * from eo_task_report ORDER BY executeTime desc GROUP BY taskId
2: select a.* from eo_task_report a where executeTime = (select max(executeTime) from eo_task_report where taskId = a.taskId ) GROUP BY a.taskId order by a.taskId
3: select * from eo_task_report GROUP BY taskId ORDER BY executeTime desc
4: select * from (select * from eo_task_report ORDER BY executeTime desc)a GROUP BY a.taskID