我希望有一种更清洁的方式来做我知道如何做的事情。我想检索 MAX ID 值的 UserId 以及 MAX ID 值。假设我有一个包含如下数据的表:
ID UserId Value
1 10 'Foo'
2 15 'Blah'
3 10 'Blech'
4 20 'Qwerty'
我想检索:
ID UserId
4 20
我知道我可以这样做:
SELECT
t.ID,
t.UserID
FROM
(
SELECT MAX(ID) as [MaxID]
FROM table
) as m
JOIN table as t ON m.MaxID = t.ID
我对 ROW_NUMBER()、RANK() 和其他类似方法只是模糊地熟悉,我不禁相信这种情况可以从一些这样的方法中受益,从而摆脱重新加入表的情况。