0

以下は、私のテーブルに含まれるレコードです。重複行をすべて削除したいのですが、結果には ID が 50、10、20、30、40 の行が含まれている必要があります。

ありがとう

50 Engineering    Pune
50 Engineering    Pune
50 Engineering    Pune
50 Engineering    Pune
50 Engineering    Pune
50 Engineering    Pune
50 Engineering    Pune
50 Engineering    Pune
50 Engineering    Pune
10 ACCOUNTING     NEW YORK
20 RESEARCH       DALLAS
30 SALES          CHICAGO
40 OPERATIONS     BOSTON
4

3 に答える 3

0

オラクルの同じ行の違いは、すべての行が一意のROWIDを持っていることです。クエリは次のとおりです。

DELETE FROM tableName
WHERE ROWID NOT IN (SELECT MAX (ROWID)
                 FROM   tableName
                 GROUP BY ID, NAME, place
                 );
于 2013-10-07T06:52:47.223 に答える
0

使用MIN(rowid):

DELETE FROM table
 WHERE ROWID NOT IN (SELECT MIN (ROWID)
                     FROM   table
                     GROUP BY ID, NAME, place
                     );

このリンクを参照すると、テーブルから重複データを削除するさまざまな方法が示されます。

于 2013-10-07T05:19:43.530 に答える