表的数据:
id data
-------------------
1 100
1 101
1 102
...
1 110
1 200
1 201
...
1 210ID的除了1以外还有2,3等,很多.我想得到的结果是
id start end
-------------------------------
1 100 110
1 201 210
...就是说把连续的一段给取出来,作为一条记录
id data
-------------------
1 100
1 101
1 102
...
1 110
1 200
1 201
...
1 210ID的除了1以外还有2,3等,很多.我想得到的结果是
id start end
-------------------------------
1 100 110
1 201 210
...就是说把连续的一段给取出来,作为一条记录
select id, min_data, max_data
from (select id, data-r data_r, min(data) min_data, max(data) max_data
from (select id, data, rank() over(partition by id order by data) r from T)
group by id, data-r)
order by 1,2;