求一SQL语句

yjdfff 2009-06-09 04:23:21
现有一张表如下

COL1 COL2 COL3
AAA FDFS FDF
BBB FDFD EFEF
BBB EFE FDFE
CCC DFD DFDF
CCC DFSF DFSF
CCC FDF DFEW

要变为
COL1 COL2 COL3 CN1 CN2
AAA FDFS FDF 1 1
BBB FDFD EFEF 1 2
BBB EFE FDFE 2
CCC DFD DFDF 1 3
CCC DFSF DFSF 2
CCC FDF DFEW 3

如何得出CN1与CN2.这两列都是根据COL1得出的结果。。
...全文
48 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjdfff 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hebo2005 的回复:]
主要你的示例没说清楚,只能瞎猜了
[/Quote]

呵呵,谢谢!!!!
hebo2005 2009-06-09
  • 打赏
  • 举报
回复
主要你的示例没说清楚,只能瞎猜了
hebo2005 2009-06-09
  • 打赏
  • 举报
回复
select COL1 ,COL2 ,  COL3 ,row_number() over(partition by col1 order by col2) cn1,
decode(row_number() over(partition by col1 order by col2),1,dense_rank over (order by col1),null) cn2
from table
yjdfff 2009-06-09
  • 打赏
  • 举报
回复
CN2是根把COL1的分组得到的如:
COL1 CN2
AAA 1
BBB 2
BBB
CCC 3
CCC
DDD 4
DDD
DDD
lovejoy_chen 2009-06-09
  • 打赏
  • 举报
回复
能解释CN1,CN2是怎么根据COL1得出的吗
yjdfff 2009-06-09
  • 打赏
  • 举报
回复
可能是我没写明白,CN2得出的是COL1中分组的累加数,不是COL1中分组的个数
welyngj 2009-06-09
  • 打赏
  • 举报
回复
up
yjdfff 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hebo2005 的回复:]
SQL codeselect COL1 ,COL2 , COL3 ,row_number() over(partition by col1 order by col2) cn1,
decode(row_number() over(partition by col1 order by col2),1,count(*) over (partition by col1),null) cn2
from table
[/Quote]


1 AAA FDF FDSF 1 1
2 BBB B1DF DFDF 1 2
3 BBB FEFE DFDS 2
4 CCC FDFS DFD 1 1
5 DDD DFD DFDS 1 3
6 DDD DFDS DFDS 2
7 DDD FDFS DFSDF 3
出来的结果不对哟,C那里应该是3,D应该是4了,下面是我自己写的,感觉效率不高.

SELECT A.*,ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY ROWNUM),B.RN FROM TEST A,
(SELECT ROWNUM RN,RD FROM
(SELECT MIN(ROWID) RD FROM TEST B GROUP BY COL1)) B
WHERE A.ROWID=B.RD(+)
hebo2005 2009-06-09
  • 打赏
  • 举报
回复
select COL1 ,COL2 ,  COL3 ,row_number() over(partition by col1 order by col2) cn1,
decode(row_number() over(partition by col1 order by col2),1,count(*) over (partition by col1),null) cn2
from table

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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