MSSQL分组取后每一组的最新一条记录

Posted 牛腩的编程不归路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSSQL分组取后每一组的最新一条记录相关的知识,希望对你有一定的参考价值。

数据库中二张表,用户表和奖金记录表,奖金记录表中一个用户有多条信息,有一个生效时间,现在要查询:

奖金生效时间在三天前,每个用户取最新一条奖金记录,且用户末锁定

以前用的方法是直接写在C#代码中的:

for(所有末锁定用户)

 查询奖金记录表 top 1 where uid=??? order by 生效时间 desc

 if(上面查询的记录生效时间在三天前)

  输出

 

今天花了大部分时间研究了一下,终于找到一条SQL语句就可以把结果查出来的方法:

技术分享

那个row_number函数在MSSQL2008以上才会有!!!

以上是关于MSSQL分组取后每一组的最新一条记录的主要内容,如果未能解决你的问题,请参考以下文章

sql数据库怎么实现分组并取每组的前1条语句,按日期排序?

Mysql 技巧 —— 分组后每条记录取最新

怎么用sql语句获取每一组的第一条记录(包括所有字段,不是单个字段)

Mysql 分组以后取每组的前三名数据

SQLSERVER 查询分组后获取每组的最新一条数据

分组背包