日期:2014-05-18  浏览次数:20474 次

在线求一条sql
表: 
 id(主) title(标题) addtime(发表时间) count(顶数)  

条件: 
 查询前20天内顶数最高的20篇内容,倒序排列,并且查最高里面的前三篇内容的title. 

效果如下:
日期 |顶数合
2012-3-18 |10000

1.title1
2.title2

2012-3-17 |5555

1.title1
2.title2

2012-3-16 |333

1.title1
2.title2

2012-3-15 |222
2012-3-14 |111
2012-3-13 |10
........



------解决方案--------------------
SQL code
--如果不需要按照title分组求count
--查询前20天内顶数最高的20篇内容,倒序排列 
select top 20 title , [count] from tb where datediff(dd,addtime,getdate()) <= 20
order by [count] desc

--查询前20天内顶数最高的3篇内容,倒序排列 
select top 3 title , [count] from tb where datediff(dd,addtime,getdate()) <= 20
order by [count] desc

------解决方案--------------------
SQL code

select max(id) as id,CONVERT(varchar(10),[addtime],120)as [addtime],
 sum([count])  as [count] from [tbl]
where datediff(dd,[addtime],GETDATE())<=20
group by CONVERT(varchar(10),[addtime],120)
order by [count] desc