You can start by eliminating the exact duplicates. When you create the new
table, do not yet assign the serial number as the primary key. Do an append
to the new table using a Select Distinct from the existing table to elimate
exact duplicates. Now in the new table you can create a group by query
something like:
Select serialNumber, count(*) as rowCount from NewTable Group By
serialNumber Having count(*) > 1;
That gets a list of all the serial numbers that have more than one row, but
the rows are not exact duplicates. If it's not too many, you can resolve the
differences manually. If it's too many, you could still decide to do
something like the solution below that just arbitrarily takes one of the
rows per serial number, or maybe you can find a way to identify important
differences.
For the future, you should always have a suitable primary key and any
identifiable uniqueness constraints on a table to prevent meaningless
duplicates. It's much easier to prevent the problem than to clean up the
trash.