admin

从按特定字段分组的日期列中获取最大值

sql

我有一个与此类似的表:

LogId  RefId   Entered
==================================
1      1       2010-12-01
2      1       2010-12-04
3      2       2010-12-01
4      2       2010-12-06
5      3       2010-12-01
6      1       2010-12-10
7      3       2010-12-05
8      4       2010-12-01

在这里,LogId是唯一的;对于每个RefId,都有多个带有时间戳的条目。我要提取的是每个最新RefId的LogId。

有人可以帮我弄这个吗?

谢谢


阅读 200

收藏
2021-07-01

共1个答案

admin

您需要使用一个子查询,该子查询为每个RefId提取最新的Entered值,然后将您的源表与此RefId上的Entered联接起来:

SELECT DISTINCT MyTable.LogId, MyTable.Entered FROM MyTable
INNER JOIN (SELECT RefId, MAX(Entered) as Entered FROM MyTable GROUP BY RefId) Latest
ON MyTable.RefId = Latest.RefId AND MyTable.Entered = Latest.Entered
2021-07-01