我有一张这样的桌子..
ID City
-----------------
1 Jakarta
1 Bogor
2 Bandung
2 Surabaya
3 Solo
3 Null
我希望查询返回:
ID City
---------------
1 Bogor
2 Surabaya
3 Null
有什么想法吗?我需要你的帮助..我使用了一些方法,例如rank
,distinct
,max
..但结果不是我的预期......
答案 0 :(得分:0)
您可以CTE
使用ROW_NUMBER
- 函数:
WITH CTE AS
(
SELECT Id, City, Rn = ROW_NUMBER() OVER (Partition By ID
Order by Id DESC)
FROM dbo.Cities
)
SELECT Id, City
FROM CTE
WHERE RN = 1
尽管我不知道您要使用哪一列来确定最新的"记录。在Order by Id DESC
。