ROW_NUMBER
を使用します 各グループの最新ではない行を検索する分析関数を使用すると、ROWID
を使用できます。 DELETE
で相関する疑似列 :
DELETE FROM tmp_data
WHERE ROWID IN (
SELECT rid
FROM (
SELECT ROWID As rid,
ROW_NUMBER() OVER (
PARTITION BY col_2, col_3, col_6
ORDER BY col_4 DESC
) AS rn
FROM tmp_data
)
WHERE rn > 1
)
22行が削除されます。
db <> fiddle ここ