请问这个SQL如何写,谢谢

TGZ 2007-04-12 09:30:55
表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写,如何写呢,谢谢
...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyrongg 2007-04-12
  • 打赏
  • 举报
回复
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
tiger_hs 2007-04-12
  • 打赏
  • 举报
回复
select f1,f2,rownum No
from (
select f1,f2
from table_x
where ....
order by ... )

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧