oracle中 with 、 row_number() over()解决办法

oracle中 with 、 row_number() over()
with ss as(select  row_number(partition by a.name order by a.name) as rn,a.* from table a) update ss set ss.number=ss.number+ss.rn where ss.rn>=2这种语句可以用吗,
------解决方案--------------------
更新的话试试这个语句
update a a1
set number=(select a1.number+count(1) 
          from a
          where name=a1.name and rowid<a1.rowid)