查询以选择开始和停止时间

时间:2013-03-15 04:47:21

标签: mysql

我有一些像这样的数据

[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
  ...      ...

任何建议都很棒!

1 个答案:

答案 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