求一条MYSQL语句,数据分段汇总~感谢!

MySql 码拜 8年前 (2016-02-10) 921次浏览
表数据
ID,起始号段,结束号段
1,100,200
1,201,300
1,301,400
1,501,600
2 ,700,720
2,721,770
2,900,990

要求统计结果如下(按照ID进行统计,号段ASC,假如ID的结束号段和这个ID的下一个起始号段是连续的,就合并区间;假如是不连续的 就按2行计算)
ID,起始号段,结束号段
1,100,400 (说明:原因是ID=1的第一行200和第二行201是连续的,所以合并,循环。直到发现第三行结束号段400和下一行起始号段501不是连续的,按照两行)
1,501,600
2,700,770
2,900,990
如上这个语句是做报表用的,问一下各位大牛SQL语句怎么汇总出这个结果啊 非常感谢了
解决方案

57

select  a.id, a.起始号段,
(select 结束号段 from 表数据 c where id=a.id and 结束号段>=a.起始号段 and not exists (select 1 from 表数据 where id=c.id and 起始号段=c.结束号段+1))
from 表数据 a
where not exists (select 1 from 表数据 where id=a.id and 结束号段=a.起始号段-1)

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求一条MYSQL语句,数据分段汇总~感谢!
喜欢 (0)
[1034331897@qq.com]
分享 (0)