1
同じ列内の日付の合計間隔
インターリーブする行間の同じ列の日付の範囲の違いをどのように合計するのが最適ですか?日時列があり、行間の差を計算したいと思います。秒の差が欲しい。この質問は、2つのタイムスタンプの違いを取得する方法ではなく、同じテーブルの行間で最も効率的に計算する方法に重点を置いています。私の場合、各行には2つの行を論理的にリンクするdatetimeのeventypeがあります。 開始と終了のイベントタイプをグループ化する方法に関連する詳細。(Andriy Mの質問)開始と終了は「すべき」です。開始に後続の終了がない場合は、合計から除外する必要があります。次の開始に移動して、終了があるかどうかを確認します。合計秒数の合計には、連続する開始-終了ペアのみを追加する必要があります。 postgresql 9.xでの作業... 表のデータの例。 eventtype, eventdate START, 2015-01-01 14:00 END, 2015-01-01 14:25 START, 2015-01-01 14:30 END, 2015-01-01 14:43 START, 2015-01-01 14:45 END, 2015-01-01 14:49 START, 2015-01-01 14:52 END, 2015-01-01 14:55 すべての開始日と終了日は連続していることに注意してください。 これが私の最初の試みです。動作しているようです。 SELECT -- starts.* SUM(EXTRACT(EPOCH FROM (eventdate_next - eventdate))) AS duration_seconds FROM ( WITH x AS ( …