0

5分ごとのデータの合計を取得したい。私は15個のモートを持っています。たとえば、最初の 5 分間で一部のモートのみがクエリされ、次の 5 分間で他のいくつかのモートがクエリされるとします。ここで、2 番目の 5 分間で、その 5 分間でクエリされていないモートのデータが必要です。つまり、最初の 5 分間でモート ID の 1、2、3、4、9、12、14 がクエリされ、2 番目の分間でクエリが実行されます。 moteid の 1,5,6,7,9,13,14 が照会されます。2 番目の 5 分間で、照会されていないデータも更新する必要があります。前の 5 分間からデータを取得することは可能ですか?

moteid2 | 28 | 2012-09-25 17:45:43 | | 
moteid4 | 65 | 2012-09-25 17:45:49 | | 
moteid3 | 66 | 2012-09-25 17:45:51 | | 
moteid6 | 25 | 2012-09-25 17:45:56 | | 
moteid5 | 29 | 2012-09-25 17:45:58 | | 
moteid7 | 30 | 2012-09-25 17:46:05 | | 
moteid4 | 95 | 2012-09-25 17:50:29 | | 
moteid6 | 56 | 2012-09-25 17:50:35 | | 
moteid5 | 58 | 2012-09-25 17:50:36 | | 
moteid4 | 126 | 2012-09-25 17:55:08 |

最初の 5 分間は moteid2 と moteid3 がクエリされますが、その後の 5 分間はクエリされません。それらが照会されていない場合でも、以前に照会された同じ値を保持したいと思います。

4

1 に答える 1

1

テーブル名は。だと思いますmotes。この場合、次のクエリはmotesid、テーブル全体に存在するが、過去5分間にクエリされなかったレコードに固有のすべてを表示します。

select distinct m.motesid
from motes m
where not exists (
    select *
    from motes m1
    where 
        m1.moteid = m.motesid and
        m1.date > SUBTIME(CURTIME(), '0:05:00')
)
于 2012-09-25T15:12:51.657 に答える