我的数据包含下表:
ID SAL
_______________
1 1500
1 1500
1 2000
1 1500
2 2500
2 2500
3 1500
我想用新列查询相同的数据 BUT ,该列给出了每个重复行的序列(基于id和sal列)。
我想要的查询结果应该是这样的:
ID SAL ROW_SEQ
_______________________
1 1500 1
1 1500 2
1 2000 1
1 1500 3
2 2500 1
2 2500 2
3 1500 1
任何人都有任何想法 PLEASE!..
答案 0 :(得分:1)
您想在此处使用ROW_NUMBER()函数。
SELECT ID, SAL, ROW_NUMBER() OVER (PARTITION BY ID, SAL, ORDER BY SAL) AS ROW_SEQ
FROM MyTable
ORDER BY ID, SAL
通过对两个所需字段进行分区,它将按顺序为您提供每个组中的排名。
有关它的文档可以在这里找到: https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions137.htm