タイムスタンプ付きの一連のオン/オフ データがテーブルにあり、オン/オフ状態、または状態が「開始」するポイントを表します。
00:00:00 0
04:00:00 1
08:00:00 0
09:00:00 1
15:00:00 0
20:00:00 1
23:59:59 0
24 時間にわたる (たとえば) ON 状態の合計期間を計算する必要があります。
この簡略化された例では、合計期間 = 1 は (04:00:00->08:00:00、09:00:00->15:00:00、20:00:00->23:59:59、つまり 13 :59:59 約14時間
これが SQL だけで実行できるかどうか、または私が使用している基礎となるフレームワーク (django) が返されたデータに基づいてこれを実行する必要があるかどうかを判断できません。別の統計パッケージでも SQL を使用する必要がある可能性があるため、可能であればデータベースに面倒な作業を行わせたいと考えています。
select の前または次の要素に対して (たとえば) 操作を実行できるかどうかは明確ではありません。私は自信のある SQL ユーザーですが、これまたは一般化されたアプローチのどこから始めればよいかわかりません。アイデアはありますか?
私はこれを単一のクエリで本当に望んでいます。または、これを計算する他の巧妙な方法が欠けています!