我有一些像这样的数据
[On] [Time]
1 157
1 158
0 159*
1 170*
1 171
0 192*
0 231
1 294*
1 295
... ...
我想选择有*的时间 所以从第0个到第1个
输出应该看起来像
[Time1] [Time2]
159 170
192 294
... ...
任何建议都很棒!
答案 0 :(得分:2)
这个相当棘手的自我加入 - SQLFiddle Demo:
SELECT min(t1) t1, t2
FROM (
SELECT s1.time t1, min(s2.time) t2
FROM mytable s1
JOIN mytable s2
ON s1.on < s2.on
AND s1.time < s2.time
GROUP BY s1.time
) x
GROUP BY t2