SELECT AnotherID, TID, TDate, COUNT(*) AS Total
FROM MyTable
GROUP BY TID
HAVING Total > 1
上述查询返回多条记录具有相同TID的记录。现在我需要选择最新的日期。
以上查询返回 TDate ,但它不是最新的,基本上我需要按TID分组并获取 TDate 最近的记录。我只需要获取多条记录具有相同 TID 的记录。
注意:不能使用MAX(TDate),因为它没有选择正确的 AnotherID 字段
答案 0 :(得分:2)
假设TDate
的数据类型为date
或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;