假设我有一个SELECT ...返回某物的查询。像这样:
role name
-------- -------
MANAGER Alice
WORKER Bob
WORKER Evan
WORKER John
MANAGER Max
WORKER Steve
Run Code Online (Sandbox Code Playgroud)
是否可以添加另一列来枚举每个组内的行(即枚举经理、工人和任何其他角色的人员,而不考虑其他角色)?像这样:
role name no.
-------- ------- ----
MANAGER Alice 1
WORKER Bob 1 // second row, but the first worker
WORKER Evan 2
WORKER John 3
MANAGER Max 2 // fifth row, but only the second manager
WORKER Steve 4
Run Code Online (Sandbox Code Playgroud)
使用 Oracle 扩展是没问题的。
小智 4
使用窗口函数:
select role, name,
row_number() over (partition by role order by name) as rn
from the_table
order by name;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4324 次 |
| 最近记录: |