SQL Server 从一个历史记录表中按用户名分组查询每个用户的最近一条记录

SQL Server 2014-03-11 39674浏览 收藏本文

如标题所描述,我们在查询数据,特别是做数据统计分析的时候(比如,从一个订单表中,查询出每个用户的最近下单时间,或者从一个邮件发送表中查询给每个用户最后发送邮件的时间),需要使用最简单的方式按用户分组查询出每个用户最近的一条记录,如下的SQL语句可以帮助我们轻松搞定这个需求,主要用了INNER JOIN以及GROUP BY 来实现,具体SQL如下:

SELECT t.username, t.date, t.value
FROM Table t
INNER JOIN (
    SELECT username, MAX(date) AS MaxDate
    FROM Table
    GROUP BY username
) tm ON t.username = tm.username AND t.date = tm.MaxDate
语句比较简单,拷贝过去就可以用,旨在分享给大家一个方法,如果朋友们觉得有更好的实现方法,欢迎留言

转载请注明:图享网 » SQL Server 从一个历史记录表中按用户名分组查询每个用户的最近一条记录