Sqlserver 如何获取每组中的第一条记录
在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面、功能下面,从数据库的术语来说,就是查找出每组中的一条数据。
例子
我们要从上面获得的有效数据为:
对应的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
)