码迷,mamicode.com
首页 > 数据库 > 详细

sql-分组排序

时间:2014-05-26 06:23:53      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:des   style   class   c   blog   code   

我们有一张数据表,需要按照【类别】分组按照【时间】排序,并分组显示各自的序号。

表Archive

ArchiveId varchar(30) 文章编号非数字
CategoryId int 文章分类Id
StatusId int 状态,-1表示删除,0表示新建,1表示启用
PubTime DateTime 发布时间

 

select top 100 ArchiveId,StatusId,PubTime,CategoryId 
from Archive 
where StatusId>=0
order by PubTime desc

查询结果:

bubuko.com,布布扣
按照【类别】分组按照【时间】排序,并分组显示各自的序号。具体做法:
bubuko.com,布布扣
--子表
with asm as(select ArchiveId,StatusId,PubTime,CategoryId from Archive where StatusId>=0)

--查询-------------------
select bb.ArchiveId,bb.StatusId,bb.PubTime,bb.CategoryId,
--序号列生成
   (select COUNT(1) from asm where bb.CategoryId=asm.CategoryId and  bb.PubTime>=asm.PubTime) rowid 
--插入临时表
into #temp  

from Archive bb
where bb.StatusId>=0 
bubuko.com,布布扣

查询临时表:

select top 200 * from #temp  order by CategoryId desc,rowid asc

见查得结果:

bubuko.com,布布扣

sql-分组排序,布布扣,bubuko.com

sql-分组排序

标签:des   style   class   c   blog   code   

原文地址:http://www.cnblogs.com/songshuai/p/3748016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!