1
私は接続履歴テーブルを毎時の時間枠に照会しようとしています。グループ化された時間枠のsqliteクエリ
create table sessionHistory (
_id integer PRIMARY KEY autoincrement,
modified integer,
ip text,
...
started integer,
ended integer
);
すべての接続開始には「開始」日付があり、終了すると「終了」日付が両方ともUNIXエポックになります。
は、私は彼らが次のクエリを使用してグループすることができるよ:
select strftime('%H', started, 'unixepoch') HOUR_,
sum(ended-started) TOTAL_TIME_
from sessionHistory
where ip='123.123.123.123' and ended!=0
group by strftime('%H', started, 'unixepoch')
は今、私は時間ごとに(= 0終了)まだ進行中のセッションの時間を含めることも望みます。
たとえば、時間1では、接続が開始され、35秒の時間で終了しました。時間2には、接続は時間3に変わる直前に開始され、回転に10秒、時間3に変わってから10秒で停止しました。
これは、質問が時間1 => 35、時間2 => 10、時間3 => 10. さらに接続がまだ終了していれば(終了= 0)、「今」開始のデータを保持する現在の時間を保持したいと考えています。これは相対時間で累積します。
2つのsqliteクエリを結合すると、セッションが1時間以上経過しても、常に「今すぐ」 - 「開始済み」が返されるため、最後の指定には応答しません。