请问这个SQL如何写,谢谢
表A
F1 F2
============
001 40
001 10
001 20
002 5
003 7
003 8
要求结果:
F1 F2 No.
==============
001 40 1
001 10 2
001 20 3
002 5 1
003 7 1
003 8 2
用一个SQL写,如何写呢,谢谢
------解决方案--------------------select f1,f2,rownum No
from (
select f1,f2
from table_x
where ....
order by ... )
------解决方案--------------------SQL> insert into tbl select '001 ',40 from dual
2 union all select '001 ',10 from dual
3 union all select '001 ',20 from dual
4 union all select '002 ',5 from dual
5 union all select '003 ',7 from dual
6 union all select '003 ',8 from dual;
6 rows inserted
SQL> select * from tbl;
F1 F2
---------- ------
001 40
001 10
001 20
002 5
003 7
003 8
6 rows selected
SQL> select f1,f2,row_number()over(partition by f1 order by f1) from tbl;
F1 F2 ROW_NUMBER()OVER(PARTITIONBYF1
---------- ------ ------------------------------
001 40 1
001 10 2
001 20 3
002 5 1
003 7 1
003 8 2
6 rows selected