首页 / SQL Server / 正文

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

48676 1评论 发布于: 2014-03-11 读完约需2分钟
如标题所描述,我们在查询数据,特别是做数据统计分析的时候(比如,从一个订单表中,查询出每个用户的最近下单时间,或者从一个邮件发送表中查询给每个用户最后发送邮件的时间),需要使用最简单的方式按用户分组查询出每个用户最近的一条记录,如下的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语句实现更新表中的某个字段等于另一张关联表中的某个字段值

下一篇: C盘占用空间比较大且可清除其中文件的目录

本文永久链接码友网 » SQL Server 从一个历史记录表中按用户名分组查询每个用户的最近一条记录

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册

热门评论

lbxp (2014-12-03 16:58)

很有用的SQL查询,谢谢分享!!!
回复 赞(0)