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

ペアのみがテーブルに存在するように重複を削除するにはどうすればよいですか?

    前の行が同じタイプである行を削除したい。だから:

    select timestamp, type
    from (select t.*,
                 lag(type) over (order by timestamp) as prev_type
          from ticket_events t
         ) t
    where prev_type <> type or prev_type is null;
    

    where 条項は次のように表現することもできます:

    where prev_type is distinct from type
    

    「問題のある」行を削除する場合は、次の操作を実行できます。timestamp ユニークです:

    delete from ticket_events
        using (select t.*,
                      lag(type) over (order by timestamp) as prev_type
               from ticket_events t
              ) tt
        where tt.timestamp = t.timestamp and
              tt.prev_type = t.type;
    


    1. Hibernate、C3P0、Mysql-壊れたパイプ

    2. SQLServerのDateTime列をDateTimeOffsetに移行します

    3. 新しいwpdbを介してデータベースを変更した後、wp_queryを使用します

    4. レーベンシュタイン:MySQL + PHP