求一个统计排名前十的sql语句

w_xj 2016-03-11 11:00:09
求大神给说下
有几个栏目 栏目下有许多包 每个包都有点击量,然后统计各栏目下的包点击量的前十(只取前十,要是有重复也只取十条数据),在某一个时间段内做这个统计
该怎么写sql语句
...全文
912 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_xj 2016-03-11
  • 打赏
  • 举报
回复
引用 1 楼 wtujedp 的回复:
你了解一下 ROW_NUMBER() 或者RANK() 函数
这个急用 可以说一个sql语句吗?谢谢
wtujedp 2016-03-11
  • 打赏
  • 举报
回复
你了解一下 ROW_NUMBER() 或者RANK() 函数
吉普赛的歌 2016-03-11
  • 打赏
  • 举报
回复
DECLARE @t TABLE (
	id INT IDENTITY(1,1) PRIMARY KEY,
	clickCnt INT
)
INSERT INTO @t (clickcnt) VALUES(200)
INSERT INTO @t (clickcnt) VALUES(300)
INSERT INTO @t (clickcnt) VALUES(400)
INSERT INTO @t (clickcnt) VALUES(500)
INSERT INTO @t (clickcnt) VALUES(700)
INSERT INTO @t (clickcnt) VALUES(200)
INSERT INTO @t (clickcnt) VALUES(2500)
INSERT INTO @t (clickcnt) VALUES(3000)
INSERT INTO @t (clickcnt) VALUES(2200)
INSERT INTO @t (clickcnt) VALUES(2300)
INSERT INTO @t (clickcnt) VALUES(2200)
INSERT INTO @t (clickcnt) VALUES(4000)
INSERT INTO @t (clickcnt) VALUES(5000)

;WITH t AS (
SELECT ROW_NUMBER() OVER (ORDER BY clickcnt DESC) AS rowNum,* FROM @t
)
SELECT * FROM t WHERE rowNum<=10 
/*
rowNum	id	clickCnt
1	13	5000
2	12	4000
3	8	3000
4	7	2500
5	10	2300
6	11	2200
7	9	2200
8	5	700
9	4	500
10	3	400 
*/

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧