SQL Server查询,用于从每个ID中查找一些最新记录

时间:2015-11-02 09:16:14

标签: sql-server

我有一张这样的桌子..

ID     City 
-----------------
1      Jakarta 
1      Bogor 
2      Bandung 
2      Surabaya 
3      Solo 
3      Null 

我希望查询返回:

ID     City 
---------------
1      Bogor 
2      Surabaya 
3      Null 

有什么想法吗?我需要你的帮助..我使用了一些方法,例如rankdistinctmax ..但结果不是我的预期......

1 个答案:

答案 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

中使用它