枚举并添加在 select 的列中 - Oracle

Enumerate and add in a column of the select - Oracle

我需要按类型在 select 的列中枚举我的行。例如,我有三种类型,可以是 "RR"、"RJ" 和 "RA",每次出现类型 "RR" 时,我必须对 3 和其他类型求和仅求和 1,创建如下序列:

输入数字
RR 3
RR 6
RJ 7
RR 10
RJ 11
RA 12
RR 15

我在 select 中还有其他字段,所以我将 ROW_NUMBER() 函数用于我所有的按字段排序,例如:

select
   number,
   [...]
   type,
   ROW_NUMBER() OVER (order by number, type [...] )*3 as sequence
from
   my_table
order by number, type [...] 

我也尝试过使用 case 语句,但它没有聚合值。

可以吗?我正在尝试使用 ROW_NUMBER() 函数,但我无法得到结果,只有三乘三。

您可以使用 SUM:

select
   number,
   [...]
   type,
   SUM(CASE WHEN Type = 'RR' THEN 3 ELSE 1 END) 
       OVER (order by number, type [...] ) as sequence
from my_table
order by number, type [...] 

Rextester Demo