Sqlserver 如何获取每组中的第一条记录

在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面、功能下面,从数据库的术语来说,就是查找出每组中的一条数据。

例子

image

我们要从上面获得的有效数据为:

image

对应的sql:

select * from t1 t where id = (select top 1 id from t1 where grp = t.grp order by createtime desc )

t1是表名,t是t1表的别名

 

方法2:热心人的评论,同样可行,好用

select * from [Document] where DocumentId in(
select max(DocumentId) from [Document] where 1=1 AND CategoryId IN(100,101) group by CategoryId
)

posted @ 2017-04-07 15:50  天道酬勤,相信自己  阅读(769)  评论(2编辑  收藏  举报