写详细点
序号 编号 处理方式
1 20041000001 串行
2 20041000001 串行
3 20041000001 并行
4 20041000001 并行
5 20041000002 并行
6 20041000002 并行
7 20041000002 串行
使用sql得到如下序号 编号 处理方式 temp
1 20041000001 串行 1
2 20041000001 串行 2
3 20041000001 并行 3
4 20041000001 并行 3
5 20041000002 并行 1
6 20041000002 并行 1
7 20041000002 串行 2很难啊.大家帮忙啊....别不理我啊:(
序号 编号 处理方式
1 20041000001 串行
2 20041000001 串行
3 20041000001 并行
4 20041000001 并行
5 20041000002 并行
6 20041000002 并行
7 20041000002 串行
使用sql得到如下序号 编号 处理方式 temp
1 20041000001 串行 1
2 20041000001 串行 2
3 20041000001 并行 3
4 20041000001 并行 3
5 20041000002 并行 1
6 20041000002 并行 1
7 20041000002 串行 2很难啊.大家帮忙啊....别不理我啊:(
解决方案 »
- 关于ORACLE冷备份的问题
- 急 存储过程出现错误:警告创建的过程带有编译错误
- 请教下大数据量数据库存储设计
- oracle 10g 连接mysql数据库
- 求oracle连接SQL SERVER的方法!在线等
- 高分!!!求救!安装好oracle10为什么不支持JSP
- 请教一个取代mysql中limit关键字的问题
- 初学oracle不知道如何创建数据库,请指教
- 祝大家中秋节快乐!工作顺利!爱情甜蜜!家庭幸福!事事顺心!!!
- PL/SQL Developer 连接不上,求助
- 困扰我一个月的问题仍旧没有解决,哪位给我解决绝对给800分,君子一言驷马难追!!!拜托
- 如何在存储过程中insert的时候,把数据库中相应的表锁住,让别的数据写不了
开始是两个并行,你用了3,然后连着两个并行,你又用了1,你不是说并行用同一编号吗?
完了之后出现串行,你又用了2,这不前面也是串行2吗,搞不清楚
而编号是表中存在需要分组的啊!
我的意思是根据同一编号的其中的type字段的值来重新对此同一编号的重新编号,使用temp来记录.
那编号规则呢?
俺看不懂
编号是进行分组的
同一组的进行并行,串行动态排号
并行使用同一号,串行递增,递增的顺序是按照前面的序号正序排列
所以出现下面的
序号 编号 处理方式 temp
1 20041000001 串行 1 描述:串行
2 20041000001 串行 2 描述:递增
3 20041000001 并行 3 描述:递增
4 20041000001 并行 3 描述:上面是并行 不变
5 20041000001 串行 4 描述:递增
----------------------------------------------这是一组
5 20041000002 并行 1 并行
6 20041000002 并行 1 上面是并行 不变
7 20041000002 串行 2 串行了, 递增
-----------------------------------------------这是一组
mytable( 序号,编号,处理方式)select 序号,编号,处理方式,decode(temp,0,1,temp) temp
from (select x.序号,x.编号,x.处理方式
, count(decode(y.处理方式,'串行',1,0)) temp
from mytable x, mytable y
where x.编号=y.编号
and x.序号>=y.序号
group by x.序号,x.编号,x.处理方式));
---------- -------------------- ----------
1 20041000001 串行
2 20041000001 串行
3 20041000001 并行
4 20041000001 并行
5 20041000002 并行
6 20041000002 并行
7 20041000002 串行已选择7行。已用时间: 00: 00: 00.16
09:30:15 2 select t.*,decode(ZT||LAG,'并行并行',0,1) flag from (
09:30:25 3 select tbname.*,lag(ZT,1,'') over(partition by bh order by xh) lag
09:30:38 4 from tbname) t)tt; XH BH ZT SFLAG
---------- -------------------- ---------- ----------
1 20041000001 串行 1
2 20041000001 串行 2
3 20041000001 并行 3
4 20041000001 并行 3
5 20041000002 并行 1
6 20041000002 并行 1
7 20041000002 串行 2已选择7行。已用时间: 00: 00: 00.16
09:30:40 SQL>
XH BH ZT SFLAG
---------- -------------------- ---------- ----------
1 20041000001 串行 1
2 20041000001 串行 2
3 20041000001 并行 3
4 20041000001 并行 3
5 20041000001 并行 3
6 20041000001 并行 3
7 20041000001 串行 4
去掉20041000002的内容,有多个并行的时候能够支持吗?怎么感觉你的只能支持两个并行
---------- -------------------- ----------
1 20041000001 串行
2 20041000001 串行
3 20041000001 并行
4 20041000001 并行
5 20041000001 并行
6 20041000001 并行
7 20041000001 串行已选择7行。已用时间: 00: 00: 00.15
10:09:55 SQL> select xh,bh,zt,sum(flag) over(partition by bh order by xh) sflag from(
10:09:59 2 select t.*,decode(ZT||LAG,'并行并行',0,1) flag from (
10:09:59 3 select tbname.*,lag(ZT,1,'') over(partition by bh order by xh) lag
10:09:59 4 from tbname) t)tt; XH BH ZT SFLAG
---------- -------------------- ---------- ----------
1 20041000001 串行 1
2 20041000001 串行 2
3 20041000001 并行 3
4 20041000001 并行 3
5 20041000001 并行 3
6 20041000001 并行 3
7 20041000001 串行 4已选择7行。已用时间: 00: 00: 00.31
10:10:00 SQL>