如何根据最大日期获取不同的记录?

use*_*925 3 sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012

我正在使用Sql server 2008.i有一个包含以下列的表,

    Id,
    Name,
    Date
Run Code Online (Sandbox Code Playgroud)

这个表包含多个相同id.i的记录想要获得具有最大date的独特id.我可以为此编写sql查询吗?

jer*_*enh 8

使用ROW_ NUMBER()函数和PARTITION BY子句.像这样的东西:

SELECT Id, Name, Date FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY Id ORDER BY Date desc) AS ROWNUM 
    FROM [MyTable]
) x WHERE ROWNUM = 1
Run Code Online (Sandbox Code Playgroud)