请问rank(),over(),row_number() over()函数怎么用?

h1258 2003-12-04 04:24:04
请问rank(),over(),row_number() over()函数怎么用?能不能给个例子
...全文
746 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujiabian 2003-12-04
  • 打赏
  • 举报
回复
你问的是DB2的问题,怎么跑到ORACLE论坛中来了?
SQL> select OBJ_CODE,OBJ_DESC,row_number() over(partition by OBJ_CODE order by OBJ_CODE) from R5OBJ
ECTS WHERE ROWNUM<=5;

OBJ_CODE OBJ_DESC
------------------------ ---------------------------------------------
ROW_NUMBER()OVER(PARTITIONBYOBJ_CODEORDERBYOBJ_CODE)
----------------------------------------------------
* 连 采机
1

42194104Y 垛式液压支架
1

42194105Y 双柱掩护液压支架
1


OBJ_CODE OBJ_DESC
------------------------ ---------------------------------------------
ROW_NUMBER()OVER(PARTITIONBYOBJ_CODEORDERBYOBJ_CODE)
----------------------------------------------------
42194106Y 单体支护机械
1

42210001Y 金属容器
1
vrv0129 2003-12-04
  • 打赏
  • 举报
回复
发mail到jackson@unicom.com.tw中,我帮你解决!
yujiabian 2003-12-04
  • 打赏
  • 举报
回复
RANK
对行排序并对每行指定等级。等级定义为就排序而言唯一的之前行的数目加 1。如果两行或多行的相对顺序因为具有重复行值而不能确定,则会指定相同等级编号。如果有重复的行值,则分等级结果可能造成编号中有间隔。表 7 显示哪些分等级结果来自一组样本行值的 RANK 函数的示例。

RANK 函数的典型语法为:

RANK ( ) OVER (ORDER BY sort-key-expression expression-order)

其中 sort-key-expression 是要分等级的数据集,而 expression-order 是关键字(ASC 或 DESC),它按升序或降序次序对 sort-key-expression 的值排序。DB2 Cube Views 要求 sort-key-expression 充当现有量度而不是列或属性。
shine333 2003-12-04
  • 打赏
  • 举报
回复
简单例子:
create table aaaa(
a varchar2(1),
b varchar2(1)
);

insert into aaaa
values('1','a');
insert into aaaa
values('1','b');
insert into aaaa
values('1','c');
insert into aaaa
values('1','d');
insert into aaaa
values('2','a');
insert into aaaa
values('2','b');
insert into aaaa
values('2','c');

结果:
SQL> select a,b,row_number() over(partition by a order by a) from aaaa;

A B ROW_NUMBER()OVER(PARTITIONBYAO
- - ------------------------------
1 a 1
1 b 2
1 c 3
1 d 4
2 a 1
2 b 2
2 c 3
h1258 2003-12-04
  • 打赏
  • 举报
回复
up

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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