获取每个驱动程序ID

时间:2018-04-30 09:51:43

标签: mysql

有一个如下表格(表名 - > DriverLocation)。它有driverID和最后检查的日期时间。 我需要查询以获得每个驱动程序的最后检查时间。

DriverID    DateTime
=======     =========
2           2018-04-30 12:38:04 //Need
3           2018-04-30 11:26:04 //Need
1           2018-04-30 10:33:04 //Need
3           2018-04-30 10:15:04
4           2018-04-30 10:05:04 //Need
2           2018-04-30 09:22:04
3           2018-04-30 08:10:04
4           2018-04-30 08:09:04
1           2018-04-30 07:45:04
5           2018-04-30 07:31:04 //Need
4           2018-04-30 07:24:04
1           2018-04-30 06:53:04
3           2018-04-30 06:45:04
1           2018-04-30 05:33:04
2           2018-04-30 04:29:04

最终数据集应该是这样的。

DriverID    DateTime
=======     =========
2           2018-04-30 12:38:04 //Need
3           2018-04-30 11:26:04 //Need
1           2018-04-30 10:33:04 //Need
4           2018-04-30 10:05:04 //Need
5           2018-04-30 07:31:04 //Need

我不知道如何查询这种数据集。请指点我这样做。

3 个答案:

答案 0 :(得分:0)

在datetime列上使用GROUP BY和MAX()函数:

SELECT DriverID, MAX(last_checked)
FROM DriverLocation
GROUP BY DriverID

答案 1 :(得分:0)

如果// Need不是DateTime列的一部分
你可以用

   select DriverID, max(DateTime)
   from my_table  
   group by DriverID
   order by max(DateTime) DESC 

答案 2 :(得分:0)

一起使用(将DateTime替换为您的列名实际上是什么):

SELECT *
FROM 
( SELECT * FROM DriverLocation ORDER BY DateTime DESC) t
GROUP BY t.DriverID

GROUP BY在分组时占第一行,你的表在最近的日期预订,它会做的伎俩