现在表有两列:
a b
1 1
1 1
1 2
1 3
1 3
2 1
2 1
2 1
select a,b,count(1),row_number() over(order by a) from t group by a,b 得到:
1 1 2 1
1 2 1 2
1 3 2 3
2 1 3 4
现在我想的是当b列值为3是(1 3 2 3)这条数据 的最后一列地 不是在上一行此列的基础上加一,而是加或2 得到(1 3 2 4) 而最后结果为:
1 1 2 1
1 2 1 2
1 3 2 4 (当b=3 是增加2)
2 1 3 5
row_number() over(order by a) 这个只能增加一个, 有什么办法吗??? 跪求! (最好用开窗实现)
a b
1 1
1 1
1 2
1 3
1 3
2 1
2 1
2 1
select a,b,count(1),row_number() over(order by a) from t group by a,b 得到:
1 1 2 1
1 2 1 2
1 3 2 3
2 1 3 4
现在我想的是当b列值为3是(1 3 2 3)这条数据 的最后一列地 不是在上一行此列的基础上加一,而是加或2 得到(1 3 2 4) 而最后结果为:
1 1 2 1
1 2 1 2
1 3 2 4 (当b=3 是增加2)
2 1 3 5
row_number() over(order by a) 这个只能增加一个, 有什么办法吗??? 跪求! (最好用开窗实现)
解决方案 »
- Oracle启动问题
- 100分求教FROM的条件查询问题!
- 请问怎样把insert/delete/update三个触发写成一个触发(合在一起,在线等待)
- [急急急!!!]请教一个OCI函数的问题
- 搜了半天,都没找到答案,还是要问一下..
- 求助大侠的帮助
- 谁知道 where 中的 (+) 是什么含义? 100
- 触发器曾经是编译通过,但现在提示“触发器中不能包含LONG型字段”,但确实没有定义和指向这种类型的字段
- 表空间创建问题,大家来帮忙。在线等。。。。。。。
- 存储过程种update一批数据,对于处于锁状态的数据需要特殊处理。如何在程序中查出被锁的记录?
- 查询语句相当慢啊
- 我做好的视图,查询速度很快,可是使用存储过程直接调用这个视图,速度超慢,为什么
2 b,
3 ct,
4 rn + sum(case
5 when b = 3 then
6 1
7 else
8 0
9 end) over(order by rownum) n
10 from (select a, b, count(1) ct, row_number() over(order by a) rn
11 from t
12 group by a, b);
A B CT N
---------- ---------- ---------- ----------
1 1 2 1
1 2 1 2
1 3 2 4
2 1 3 5
有没有可能row_number() over(order by a) 换个函数能实现????