SQL:枚举每个组中返回的行
假设我有一个SQL:枚举每个组中返回的行,sql,oracle,Sql,Oracle,假设我有一个SELECT…查询,返回如下内容: role name -------- ------- MANAGER Alice WORKER Bob WORKER Evan WORKER John MANAGER Max WORKER Steve 是否可以添加另一列来枚举每个组中的行(即,枚举任何其他角色的经理、工人和人员时,不考虑其他角色)?像这样: role name no. -------- ------- ---- M
SELECT…
查询,返回如下内容:
role name
-------- -------
MANAGER Alice
WORKER Bob
WORKER Evan
WORKER John
MANAGER Max
WORKER Steve
是否可以添加另一列来枚举每个组中的行(即,枚举任何其他角色的经理、工人和人员时,不考虑其他角色)?像这样:
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
可以使用Oracle扩展。使用窗口功能:
select role, name,
row_number() over (partition by role order by name) as rn
from the_table
order by name;