行ごとに主キーまたはいくつかの異なるIDを持たない...私の頭に浮かぶ唯一の解決策は次のようなものです:
select rn, id , time
from
(select ROW_NUMBER() over (order by time) as rn, id, time from test
where id = 'start'
union
select ROW_NUMBER() over (order by time) as rn, id, time from test
where id = 'stop'
) d
order by rn
基本的に、次のように、開始された行と停止された行の間の結合を作成しました。
(select ROW_NUMBER() over (order by time) as rn, id, time from test
where id = 'start'
union
select ROW_NUMBER() over (order by time) as rn, id, time from test
where id = 'stop'
) d
戻り値:
1 start 08.00
2 start 11.00
3 start 12.00
4 start 13.00
1 stop 09.00
2 stop 10.00
3 stop 14.00
4 stop 15.00
元の入力から:
id time
start 08.00
stop 09.00
stop 10.00
start 11.00
start 12.00
start 13.00
stop 14.00
stop 15.00
これで、それらを独自の行番号で並べ替えるだけで済みます...それがrnです。
最後に、次のようになります。
1 start 08.00
1 stop 09.00
2 start 11.00
2 stop 10.00
3 start 12.00
3 stop 14.00
4 start 13.00
4 stop 15.00
@注:私の例の値はあなたのものに近いです...しかし架空のものです...