SELECT AnotherID, TID, TDate, COUNT(*) AS Total
FROM MyTable
GROUP BY TID
HAVING Total > 1
上述查询返回多条记录具有相同 TID 的记录。现在我需要选择最新的日期。
上面的查询返回TDate但它不是最新的,基本上我需要按 TID 分组并获取TDate最新的记录。我只需要获取多个记录具有相同TID的那些记录。
注意:不能使用 MAX(TDate),因为它没有选择正确的AnotherID字段
假设TDate
是数据类型date
or datetime
,那么MAX(TDate)
将为您提供每个分组的最新日期TID
:
SELECT t1.AnotherId, t1.TID, t2.MaxTDate, t2.Total
FROM MyTable AS t1
INNER JOIN
(
SELECT TID, MAX(TDate) AS MaxTDate, COUNT(*) AS Total
FROM MyTable
GROUP BY TID
HAVING Total > 1
) AS t2 ON t1.TID = t2.TID
AND t1.TDate = t2.MaxTDate;