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

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

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

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

for(所有末锁定用户)

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

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

  输出

 

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

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

posted @   牛腩  阅读(1541)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示