我们可以轻松获得如下的SQL结果:
SQL>select Name, Value from table order by Name;
Name Value
------------
A 1
A 2
B 1
C 5
C 6
C 7
但是,有没有办法将名称链接到一个数字,以便可以形成不同名称的索引?假设我们不知道表中有多少不同的名称,并且不知道它们是什么。
Name Value idx
-----------------
A 1 0
A 2 0
B 1 1
C 5 2
C 6 2
C 7 2
答案 0 :(得分:2)
这可以使用窗口函数轻松完成:
select Name,
Value,
dense_rank() over (order by name) - 1 as idx
from table
order by Name;