请教SQL,怎么按照某列的数据的值来分组

aa765aa 2014-10-31 11:55:15
比方有一张流水号的表

流水号名 流水号
a1 00001
a1 00002
a1 00004
a1 00007
a1 00008
a1 00009

现在就是想出个报表,显示如下

流水号名 开始 结束
a1 00001 00002
a1 00004 00004
a1 00005 00007

也就是说按照流水号是否连续分组 取得连续的流水号范围.
请大虾们指点
...全文
336 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bw555 2014-10-31
  • 打赏
  • 举报
回复
假设表名T,字段为ID 、A
select ID,MIN(A),MAX(A) from T T1
START WITH NOT EXISTS(SELECT 1 FROM T WHERE A=T1.A-1 AND ID=T1.ID)
CONNECT BY PRIOR A=A-1 AND PRIOR ID=ID
GROUP BY CONNECT_BY_ROOT(A),ID

17,082

社区成员

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

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