sql游标问题?

zxhxiaoyi51 2011-03-14 11:26:23
SELECT * FROM
(SELECT
*,ROW_NUMBER() OVER(PARTITION BY a ORDER BY a) row
FROM
t2)T
WHERE
row <= 5


谁能解释一下这段代码。
(低下是相关数据,1是要分组的列,2是数据列,3是标识列)。结果:按第一列分组,每一组取前5个数据。回答问题的代码,在上面已经显示,请高手解释这段代码的意思。
1 你 1
1 好 2
1 是 3
2 个 4
1 三 5
1 晕 6
2 晕 7
2 色 8
3 不 9
3 不 10
3 不 11
3 不 12
3 不 13
3 不 14
3 不 15
3 不 16
...全文
70 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zxhxiaoyi51 2011-07-15
ROW_NUMBER() 和OVER() 2个函数可以分开使用吗
回复
zxhxiaoyi51 2011-03-30
没人说了。。。
回复
zxhxiaoyi51 2011-03-24
PARTITION BY 这个玩意不能单独使用吗

ROW_NUMBER() 和OVER() 2个函数可以分开使用吗
回复
zfwjh 2011-03-22

CREATE TABLE TestTable(
id int,
test varchar(2) )

insert into TestTable(id,test) values( '1','你')
insert into TestTable(id,test) values( 1,'好')
insert into TestTable(id,test) values( 1,'是')
insert into TestTable(id,test) values( 2,'个')
insert into TestTable(id,test) values( 1,'三')
insert into TestTable(id,test) values( 1,'晕')
insert into TestTable(id,test) values( 2,'晕')
insert into TestTable(id,test) values( 2,'色')
insert into TestTable(id,test) values( 3,'不')
insert into TestTable(id,test) values( 3,'不')
insert into TestTable(id,test) values( 3,'不')
insert into TestTable(id,test) values( 3,'不')
insert into TestTable(id,test) values( 3,'不')
insert into TestTable(id,test) values( 3,'不')
insert into TestTable(id,test) values( 3,'不')
insert into TestTable(id,test) values( 3,'不')

SELECT * FROM
(SELECT *,ROW_NUMBER() OVER(PARTITION BY ID ORDER BY test) row
FROM
TestTable)T
WHERE
row <= 5

id test row
1 好 1
1 你 2
1 三 3
1 是 4
1 晕 5
2 个 1
2 色 2
2 晕 3
3 不 1
3 不 2
3 不 3
3 不 4
3 不 5

回复
zxhxiaoyi51 2011-03-22
ROW_NUMBER() OVER(PARTITION BY a ORDER BY a)

PARTITION 一定要在这个函数中使用吗?
回复
快溜 2011-03-14
partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组
回复
zxhxiaoyi51 2011-03-14
不能想问游标问题,结果。 悲剧。。。。。。。。。
回复
gw6328 2011-03-14
这哪里是游标问题?
回复
Xiao_Ai_Mei 2011-03-14
a是分组列,order by 是必须的。这里再按照a排序,意义不大
回复
王向飞 2011-03-14
分栏 分区 分窗
回复
zxhxiaoyi51 2011-03-14
意思我明白。ROW_NUMBER() OVER(PARTITION BY a ORDER BY a)这个函数是什么意思。
为什么会有这个结果。PARTITION BY 什么意思?!
回复
Xiao_Ai_Mei 2011-03-14
按分组列,生成1个从1递增的列
最后取小于5的
回复
zxhxiaoyi51 2011-03-14
楼上 书面语言也忒明显了。。。。通俗。。表复制。。
回复
相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需求分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2011-03-14 11:26
社区公告
暂无公告