私は、タイムスタンプの列とID(数値)の列を持つテーブルを持っているとしましょう。 IDごとに、最新のタイムスタンプを持つ行以外のすべての行を削除しようとしています。ここで PostgreSQL:最新のタイムスタンプを持つレコードを削除する
は、私がこれまで持っているコードです: はDELETE FROM table_name t1
WHERE EXISTS (SELECT * FROM table_name t2
WHERE t2."ID" = t1."ID"
AND t2."LOCAL_DATETIME_DTE" > t1."LOCAL_DATETIME_DTE")
このコードが動作しているようですが、私の質問は:なぜそれが>
記号ではなく、タイムスタンプの比較で<
サインですか?これは、別の行より後のタイムスタンプを持つすべての行の削除を選択していませんか?私はこのコードが各IDの最も早いタイムスタンプを持つ行だけを保持すると思った。
説明をありがとう! – CoteDor