У меня есть имя таблицы TABLE1, которая содержит дубликаты записей, как показано ниже:
ID TYPE AMOUNT NUMBER DATE
--- ---- ------ ------ ---------
1 AAA 10.00 AAA123 22-JUN-11
2 AAA 2.00 AAA123 22-JUN-11
3 AAA 10.00 AAA123 22-JUN-11
4 AAA 2.00 AAA123 22-JUN-11
5 AAA 10.00 AAA123 22-JUN-11
6 AAA 2.00 AAA123 22-JUN-11
7 AAA 10.00 AAA123 22-JUN-11
8 AAA 2.00 AAA123 22-JUN-11
... ... ... ... ...
100 AAA 10.00 AAA123 22-JUN-11
101 AAA 2.00 AAA123 22-JUN-11
В этом случае я хотел бы удалить ВСЕ строки дублирующихся комбинаций, кроме двух, используя SQL или / через PL / SQL, гдеСУММА (10.00 и 2.00).Кроме того, дубликатов записей, содержащих разные суммы, может быть больше двух, как показано ниже:
ID TYPE AMOUNT NUMBER DATE
--- ---- ------ ------ ---------
1 AAA 10.00 AAA123 22-JUN-11
2 AAA 2.00 AAA123 22-JUN-11
3 AAA 15.00 AAA123 22-JUN-11
4 AAA 25.50 AAA123 22-JUN-11
5 AAA 10.00 AAA123 22-JUN-11
6 AAA 2.00 AAA123 22-JUN-11
7 AAA 15.00 AAA123 22-JUN-11
8 AAA 25.50 AAA123 22-JUN-11
...
В приведенном выше примере мне нужно удалить только 4 из 8 записей, где в AMOUNT должно остаться 4 записи(10,00, 2,00, 15,00 и 25,50).Другими словами, у меня есть несколько групп дубликатов в одной таблице (2 записи для одной, 4 для другой и т. Д.) - несколько строк, где существует более одной.