I have a table where I store changes made to an order. The looks like ProdID, ChangeDate, Change1, Change2, ... etc. Some ProdIDs have multiple records. Is there an easy way to delete all records of a ProdID except the most recent (ChangeDate is timestamp) one? Preferably in one SQL statement?
delete from table_name where exists (select * from table_name x where x.prodid = table_name.prodid and x.changedate > table_name.changedate);