SQLServer2005获取所有分类下TOPN条记录

来源:互联网 发布:行矩阵 w t 编辑:程序博客网 时间:2024/05/17 03:19
在SQLServer2005之后我们可以通过一条SQL很方便的获取所有分类下TOPN条记录,这样做会大大提高数据库处理的效率。
     假设我们有如下的数据结构:
     Create table Info(
       InfoID int,
       classifyid int,
       title varchar(400),
       updatetime datetime
    )
    classifyid为分类编号,
    updatetime为更新时间
获取每个分类下的最近更新的前10条记录的方法
select infoId,classifyid,title,updatetime from(
      select infoID,classifyid,title,updatetime,row_number() over(partition by classifyid order by updatetime desc)
         as rowindex from info) a
where rowindex <= 10