oracle 对某列连续的数据为一组,如何写SQL
以图中的rownum字段为检查连续字段。想查出来的数据为:rownum分组序号31526272143真想不出方法,谢谢了。不好意思,上面说的不应该是分组序号。应该是组序号...
以图中的rownum 字段为检查连续字段。
想查出来的数据为:
rownum 分组序号
3 1
5 2
6 2
7 2
14 3
真想不出方法,谢谢了。
不好意思,上面说的不应该是分组序号。应该是组序号。目的是取出当前表中有多少组连续数据,因为可能不是很标准的连续数据,单条也算一组,连续的为一组。以rownum 为检查连续字段。
求这个SQL怎么写! 展开
想查出来的数据为:
rownum 分组序号
3 1
5 2
6 2
7 2
14 3
真想不出方法,谢谢了。
不好意思,上面说的不应该是分组序号。应该是组序号。目的是取出当前表中有多少组连续数据,因为可能不是很标准的连续数据,单条也算一组,连续的为一组。以rownum 为检查连续字段。
求这个SQL怎么写! 展开
4个回答
展开全部
with tmp as(
select 1001 as c1,'Mar-13' as c2,90000 as c3,70000 as c4,3 as "rownum" from dual union all
select 1001 as c1,'May-13' as c2,50000 as c3,10000 as c4,5 as "rownum" from dual union all
select 1001 as c1,'Jun-13' as c2,60000 as c3,10000 as c4,6 as "rownum" from dual union all
select 1001 as c1,'Jul-13' as c2,100000 as c3,40000 as c4,7 as "rownum" from dual union all
select 1002 as c1,'Jul-13' as c2,140000 as c3,90000 as c4,14 as "rownum" from dual
)
select d.c1,d.c2,d.c3,d.c4,d."rownum",c.rr from(
select k,rownum rr from(
select distinct (n-r) as k from(
select "rownum" n,rownum as r from tmp
) a
) b
) c
inner join (select c1,c2,c3,c4,"rownum",rownum as r from tmp) d
on c.k=d."rownum"-d.r;
结果如下:
更多追问追答
追答
刚发现oracle有个dense_rank函数,可以很方便的实现你的要求:
select c1,c2,c3,c4,"rownum",dense_rank() over (order by "rownum"-rownum) rr from tmp;
这么一句就行了。
展开全部
select rownum '组号' ,t.* from (…通过sql查询到的数据…) t
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用多少样的方式去看这个啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能解释清楚一点么?
更多追问追答
追问
已经补充,谢谢关注,希望能解答。
追答
还是不清楚。
这样吧,你列举些简单的数据。
1.表中的数据
2.想拿到什么样式的数据
这样好方便理解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询