0

タイム スタンプのギャップが 5 分である値よりも小さい値と大きい値からデータを検索するクエリが必要です。

たとえば、20.4 は <= 26.0 で、25.5 も <= 26.0 ですが、time_stamp 値の差はわずか 3 分なので、20.4,40.1,22.3,32.2 を選択したい

20.4    October, 26 2013 13:12:22+0000
25.5    October, 26 2013 13:15:22+0000
40.1    October, 26 2013 13:35:22+0000
22.3    October, 26 2013 13:43:22+0000
19.78   October, 26 2013 13:45:22+0000
32.2    October, 26 2013 13:51:22+0000

しかし、次のような結果セットが必要です。

20.4    October, 26 2013 13:12:22+0000
40.1    October, 26 2013 13:35:22+0000
22.3    October, 26 2013 13:43:22+0000
32.2    October, 26 2013 13:51:22+0000

SQLフィドルリンクを見つけてください

4

1 に答える 1

0

これを試して:

SELECT type,time_stamp
FROM (
   select type,time_stamp,
          if(time_stamp > @prev_tm + interval 5 minute, 
             (@prev_tm:=time_stamp), @prev_tm ) prev_tm
   from table1,
   (
      SELECT (@prev_tm:= min(time_stamp) - interval 999 minute)
      FROM table1
   ) init_vars
   where time_stamp >= '2013-10-26 13:12:22'
   and (type <= 26 or type >= 30)
   order by time_stamp
) sub_query
WHERE time_stamp = prev_tm

デモ: http://www.sqlfiddle.com/#!2/e67b3/24

于 2013-10-26T08:55:29.980 に答える