--获取每个分类下的N条记录 select * from( select *,rn=row_number() over (partition by 类别 order by 日期 desc) from @tb )t where rn <= N --或者 select distinct b.* from @tb a cross apply (select top N * from @tb where 类别=a.类别 order by newid())b
--获取每个分类下的N条记录 select * from( select *,rn=row_number() over (partition by 类别 order by 日期 desc) from @tb )t where rn <= N --或者 select distinct b.* from @tb a cross apply (select top N * from @tb where 类别=a.类别 order by newid())b