我在一个名为bank_currency
的表中有重复的数据,它看起来像这样:
currencyid | bankid
--------------------
8 1
8 1
8 1
16 2
16 2
16 2
14 3
14 3
14 3
我不知道为什么数据重复了三份,但我需要去掉所有重复的数据,每行只保留一份。所以我的结局是这样的:
currencyid | bankid
--------------------
8 1
16 2
14 3
我不能用ORDER BY
、bankid
或currencyid
来告诉postgresql要保留哪一行,因为它们是重复的。也许是ROW_NUMBER
的订单(如果可能的话(,只保留最低的ROW_NUMBER
?非常感谢任何建议。
如果您的表没有id列,最好的选择可能是使用临时表:
CREATE TABLE bank_currency_temp AS
SELECT DISTINCT bankid, currencyid
FROM bank_currency;
之后删除原始表格
DROP TABLE bank_currency
然后重命名临时表
ALTER TABLE bank_currency_temp
RENAME TO bank_currency;