1

私はこのようないくつかのデータを持っています

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

どんなアドバイスも素晴らしいでしょう!

4

1 に答える 1

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
于 2013-03-15T05:32:15.720 に答える