如何使用Oracle中的SQL查询为组中的每个元素添加序列号

Vic*_*tor 6 sql oracle oracle11g

我在Oracle中有一个包含以下数据的表.

ID          VALUE
10           A
10           B
10           C
20           A1
30           C1
30           D1
Run Code Online (Sandbox Code Playgroud)

并希望根据ID进行分组,并打印一个包含每个组内序列号的新列.

输出应该是

ID          VALUE     GROUPSEQ
10           A           1
10           B           2
10           C           3
20           A1          1
30           C1          1
30           D1          2
Run Code Online (Sandbox Code Playgroud)

可以使用Oracle SQL完成此操作而无需创建任何临时表.

Jua*_*eza 11

你需要ROW_NUMBER

SELECT ID, VALUE, row_number() OVER (PARTITION BY ID ORDER BY value) GROUPSEQ
FROM myTable
Run Code Online (Sandbox Code Playgroud)