SQL分析函数 - 如何为分区分配编号?

Ben*_*oit 2 sql oracle analytic-functions

我正在使用Oracle.

假设我有一个包含此样本的表,随机,内容:

columnA     | columnB  | content
--------------------------------
AfBkxZ      | 292      | a
LDglkK      | 181      | b
AfBkxZ      | 51       | c
AfBkxZ      | 315      | d
LDglkK      | 808      | e
Cee89g      | 1        | f
Run Code Online (Sandbox Code Playgroud)

我想在其中有一个视图,其中我对columnA中的每个值都有一个唯一的编号,并且对于其中columnA具有该值的行内的记录编号.

基于以上样本数据的结果:

Group_number | Record_number | columnB | content
------------------------------------------------
1            | 2             | 292     | a             (1.2)
3            | 1             | 181     | b             (3.1)
1            | 1             | 51      | c             (1.1)
1            | 3             | 315     | d             (1.3)
3            | 2             | 808     | e             (3.2)
2            | 1             | 1       | f             (2.1)
Run Code Online (Sandbox Code Playgroud)

我能获得record_numberrow_number() over (partition by columnA order by columnB asc).

我如何获得group_number旧的实际上是友好的顺序别名columnA

谢谢.

And*_*mar 5

您可以使用dense_rank编号columnA:

dense_rank() over (order by columnA)
Run Code Online (Sandbox Code Playgroud)