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 ここ