请教一个统计的SQL的写法
表的数据:
id data
-------------------
1 100
1 101
1 102
...
1 110
1 200
1 201
...
1 210
ID的除了1以外还有2,3等,很多.
我想得到的结果是
id start end
-------------------------------
1 100 110
1 201 210
...
就是说把连续的一段给取出来,作为一条记录
------解决方案--------------------如果同一id的data不重复,可以这样写
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;