一、ROW_NUMBER()
SELECT ITEM_CODE,
PO_NO,
PO_LINE_NO,
PO_AMT,
ROW_NUMBER() OVER(PARTITION BY PO_NO ORDER BY ITEM_CODE) AS NUM
FROM MRO.STX_MRO_PO_LINE
WHERE PO_NO='RP111110-0016';
执行结果:
ITEM_CODE |
PO_NO |
PO_LINE_NO |
PO_AMT |
NUM |
M90202-0023 |
RP111110-0016 |
9 |
188000 |
1 |
M90202-0023 |
RP111110-0016 |
5 |
235000 |
2 |
M90202-0028 |
RP111110-0016 |
10 |
33440 |
3 |
M90202-0057 |
RP111110-0016 |
6 |
6380 |
4 |
M90202-0167 |
RP111110-0016 |
8 |
325600 |
5 |
M90202-0167 |
RP111110-0016 |
7 |
130240 |
6 |
M90205-0011 |
RP111110-0016 |
1 |
1920 |
7 |
M90205-0015 |
RP111110-0016 |
2 |
9120 |
8 |
M90205-0016 |
RP111110-0016 |
3 |
16500 |
9 |
M90205-0017 |
RP111110-0016 |
4 |
2986 |
10 |
二、RANK()
SELECT ITEM_CODE,
PO_NO,
PO_LINE_NO,
PO_AMT,
RANK() OVER(PARTITION BY PO_NO ORDER BY ITEM_CODE) AS NUM
FROM MRO.STX_MRO_PO_LINE
WHERE PO_NO='RP111110-0016';
执行结果:
ITEM_CODE |
PO_NO |
PO_LINE_NO |
PO_AMT |
NUM |
M90202-0023 |
RP111110-0016 |
9 |
188000 |
1 |
M90202-0023 |
RP111110-0016 |
5 |
235000 |
1 |
M90202-0028 |
RP111110-0016 |
10 |
33440 |
3 |
M90202-0057 |
RP111110-0016 |
6 |
6380 |
4 |
M90202-0167 |
RP111110-0016 |
8 |
325600 |
5 |
M90202-0167 |
RP111110-0016 |
7 |
130240 |
5 |
M90205-0011 |
RP111110-0016 |
1 |
1920 |
7 |
M90205-0015 |
RP111110-0016 |
2 |
9120 |
8 |
M90205-0016 |
RP111110-0016 |
3 |
16500 |
9 |
M90205-0017 |
RP111110-0016 |
4 |
2986 |
10 |
三、DENSE_RANK()
SELECT ITEM_CODE,
PO_NO,
PO_LINE_NO,
PO_AMT,
DENSE_RANK() OVER(PARTITION BY PO_NO ORDER BY ITEM_CODE) AS NUM
FROM MRO.STX_MRO_PO_LINE
WHERE PO_NO='RP111110-0016';
执行结果:
ITEM_CODE |
PO_NO |
PO_LINE_NO |
PO_AMT |
NUM |
M90202-0023 |
RP111110-0016 |
9 |
188000 |
1 |
M90202-0023 |
RP111110-0016 |
5 |
235000 |
1 |
M90202-0028 |
RP111110-0016 |
10 |
33440 |
2 |
M90202-0057 |
RP111110-0016 |
6 |
6380 |
3 |
M90202-0167 |
RP111110-0016 |
8 |
325600 |
4 |
M90202-0167 |
RP111110-0016 |
7 |
130240 |
4 |
M90205-0011 |
RP111110-0016 |
1 |
1920 |
5 |
M90205-0015 |
RP111110-0016 |
2 |
9120 |
6 |
M90205-0016 |
RP111110-0016 |
3 |
16500 |
7 |
M90205-0017 |
RP111110-0016 |
4 |
2986 |
8 |
分享到:
相关推荐
MS SQL 2005 四个排序函数ROW_NUMBER、RANK、DENSE_RANK 和 NTILE简介用法结果排名排序
分析函数ROW_NUMBER、RANK、DENSE_RANK的用法
排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数row_number、rank、dense_rank和ntile,需要的朋友可以参考下。
hive中分组取topN、row_number、rank和dense_rank使用介绍
ROW_NUMBER()说明:返回结果集分区内行的序列号,每个分区的第一行从 1 开始。语法:ROW_NUMBER () OVER ( [ <partition> ] <order> ) 。备注:ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。...
本文主要是对Oracle分析函数Rank, Dense_rank, row_number的使用法,通过这些函数,我们可以对数据进行排序和分组,需要的朋友可以参考下。
“rank()、dense_rank()和row_number()的区别”文章的date
主要介绍了sql四大排名函数之ROW_NUMBER、RANK、DENSE_RANK、NTILE使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
本技巧文章将讨论ROW_NUMBER(),RANK()和DENSE_RANK()之间的区别。
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据... rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内) dense_rank()也是连续排序,有两个第二名时仍然跟
分析函数2(Rank, Dense_rank, row_number);分析函数3(Top/Bottom N、First/Last、NTile);窗口函数;报表函数;分析函数总结;26个分析函数;PLSQL开发笔记和小结;分析函数简述 ROW_NUMBER () OVER([partition_clause]...
SQL 获取顺序号的四种方法:IDENTITY、RANK、DENSE_RANK、ROW_NUMBER 在 SQL 中,获取顺序号是非常常见的操作。今天,我们将讨论四种获取顺序号的方法:IDENTITY、RANK、DENSE_RANK、ROW_NUMBER。每种方法都有其优...
drop table if exists SC; create table SC( Sno char(10), Cno char(10), Grade smallint not null, constraint pk_sno primary key (sno,cno) ) 首先简单创建一个表,并为其插入主码 Insert Into SC (Sno ,...
Row_number() over()、rank() over()和dense_rank()over()函数的使用 Select * from (select name,class,s,rank() over(partition by class order by s desc) mm from t2) where mm=1; 说明: 1.在求第一名成绩的...