帮忙写个SQL,100分谢

frogshero 2004-07-15 09:08:57
表如下
aa bb
a abc
a zxcv
a xcv
b zx
b xxg
c aa

要求得到如下结果:
aa bb cc
a abc 1
a zxcv 2
a xcv 3
b zx 1
b xxg 2
c aa 1

请帮忙
...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
frogshero 2004-07-15
  • 打赏
  • 举报
回复
create table test1(aa char(1), bb char(10))
insert test1 values('c','ww')
...
select * from test1
select aa,bb,(select count(*) from test1 where aa=a.aa and bb<=a.bb) from test1 a
frogshero 2004-07-15
  • 打赏
  • 举报
回复
要求性能,可能有20000条记录
whoknow 2004-07-15
  • 打赏
  • 举报
回复
当然,补充一句,从原表读出来的数据,都有插到临时表B中.
whoknow 2004-07-15
  • 打赏
  • 举报
回复
先建一个临时表B,然后用游标把原表走一遍.把两个字段读出来放到变量里.然后判断当前行的aa字段是否和下一行的aa字段相同,如果相同cc字段加一,如果不同从一从新开始累加.不过这样写性能巨差,不能多于20条,不然没有任何实际意义.还希望其他人,看看能有什么更好的办法,可以解决这个问题.
troopers 2004-07-15
  • 打赏
  • 举报
回复
什么意思呀?
whoknow 2004-07-15
  • 打赏
  • 举报
回复
你这东西要求性能吗?还是自己想写着瞎玩的.如果不要求性能用游标可以实现你要的结果,但一条sql我写不出来.
whoknow 2004-07-15
  • 打赏
  • 举报
回复
select aa,bb,(select count(*) from test1 where aa=a.aa and bb<=a.bb) from test1 a
这样的结果集出来的对吗?我感觉不对,那不是递增方式.如果有两个bb的值相同怎么办?

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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