DELETE FROM some_table WHERE primaryKey NOT IN SELECT MIN primaryKey FROM some_table GROUP BY some_column Of course you can use MAX primaryKey as well if you want to keep the newest record with the duplicate value instead of the oldest record with the dup...