Sql server 如何根据SQL Server 2008 R2中的最新日期时间获取不同的列数据

Sql server 如何根据SQL Server 2008 R2中的最新日期时间获取不同的列数据,sql-server,tsql,sql-server-2008-r2,greatest-n-per-group,Sql Server,Tsql,Sql Server 2008 R2,Greatest N Per Group,我有一个表login,其中包含id、username、loginData列 示例数据如下所示: {1, username1, logindate1} {2, username2, logindate2} {3, username1, logindate3} {4, username2, logindate4} 我想得到这个结果: {1, username1, logindate1} {2, username2, logindate2} 表示不同用户的最新登录数据 请帮忙 提前谢谢 sele

我有一个表
login
,其中包含
id、username、loginData

示例数据如下所示:

{1, username1, logindate1}
{2, username2, logindate2}
{3, username1, logindate3}
{4, username2, logindate4}
我想得到这个结果:

{1, username1, logindate1} 
{2, username2, logindate2}
表示不同用户的最新登录数据

请帮忙

提前谢谢

select *
from (
    select *,rn=row_number() over (partition by username order by logindate desc)
    from login
) x
where rn=1
order by username;