sql >> データベース >  >> RDS >> PostgreSQL

クエリ出力から開始タイムスタンプと終了タイムスタンプを持つ部分的/完全に重複するイベントを削除するにはどうすればよいですか?

    これはギャップと島の一形態です。この場合、最初にオーバーラップを探すことによって、島がどこから始まるかを決定します。次に、開始と集計の累積合計を実行します。

    select max(id), min(start), max(end), max(created_at)
    from (select t.*,
                 count(*) filter (where max_end < end) over (order by start) as grouping
          from (select t.*,
                       max(end) over (order by start rows between unbounded preceding and 1 preceding) as max_end
                from events t
               ) t
         ) t
    group by grouping;
    



    1. Debian9にMariaDBをインストールして保護する方法

    2. MSAccessとODBCを使用してリモートPostgreSQLに接続する

    3. 緯度と経度のデータ型はどれですか?

    4. 1つのテーブルに値がない場合は、2つのテーブルを結合します