SQL分析函数-如何为分区分配数字



我正在使用Oracle。

假设我有一张表格,里面有这个样本,随机的,内容:

columnA     | columnB  | content
--------------------------------
AfBkxZ      | 292      | a
LDglkK      | 181      | b
AfBkxZ      | 51       | c
AfBkxZ      | 315      | d
LDglkK      | 808      | e
Cee89g      | 1        | f

我希望有一个视图,其中a列中的每个值都有一个唯一的数字,并在a列具有该值的行中记录数字。

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

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)

我可以用row_number() over (partition by columnA order by columnB asc)获得record_number

如何获得group_number,它实际上是旧columnA的友好排序别名?

谢谢。

您可以使用dense_rank对列A:进行编号

dense_rank() over (order by columnA)

相关内容

  • 没有找到相关文章

最新更新