我有表名TABLE1包含重复的记录,如下所示:Oracle PL/SQL - 如何删除SQL表中的多个重复记录?
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其中AMOUNT(10.00和2.00)。另外,含有不同量的重复recordes可以多于两个,如下面所示是:
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条记录,其中量应保持4条记录(10.00到删除,2.00,15.00和25.50)。换句话说,我在一个表中有多组重复项(一个为2个记录,另一个为4个等) - 存在多个存在的多个行。
那么列有助于重复?只有金额? – Chandu
当答案确实只使用SQL时,社区对标记PLSQL时会不满。对于什么版本的Oracle? –