WITH rn AS ( SELECT ROW_NUMBER() OVER (partition BY id) AS rn, * FROM TABLE WHERE condition=1 ), id_list AS ( SELECT id FROM rn WHERE rn.rn > 1 ) DELETE FROM TABLE WHERE id IN (SELECT id FROM id_list)