我在我的Postgres數據庫中有一張表,我忘記插入一個唯一的索引。因爲那個指數現在我已經重複了價值。如何刪除重複的值?我想在字段translationset_Id和key上添加一個唯一的索引。PostgresSQL如何刪除重複的值
回答
看來,你只是想刪除的重複的相對於translationset_id
列記錄。在這種情況下,我們可以使用Postgres的行號功能來區分重複的行,然後刪除這些重複的行。
WITH cte AS
(
SELECT t.*, ROW_NUMBER() OVER (PARTITION BY translationset_id, key) AS rnum
FROM yourTable t
)
DELETE FROM yourTable
WHERE translationset_id IN (SELECT translationset_id FROM cte WHERE rnum > 1)
關鍵列在哪裏? 「我已經更新了prtScr」 –
@CecilBoye我已經更新了謝謝。 –
我想你問這個:
DELETE FROM tablename WHERE id IN (SELECT id FROM (SELECT id, ROW_NUMBER() OVER (partition BY column1, column2, column3 ORDER BY id) AS rnum FROM tablename) t WHERE t.rnum > 1);
這可能不完全正確。看起來分區只應該在'translationset_id'和'key'列上,而不是其他的。 –
好吧,這就像一個藍圖,你可以按照解決你的問題。我主要用這個來記住這個程序。 – Kostasfra
我已經提高了你的答案,做得很好! –
delete from mytable
where exists (select 1
from mytable t2
where t2.name = mytable.name and
t2.address = mytable.address and
t2.zip = mytable.zip and
t2.ctid > mytable.ctid
);
- 1. 如何刪除重複值
- 2. 如何刪除HashSet中的重複值
- 3. 如何刪除PHP中的重複值?
- 4. 如何從ARRAYLIST刪除重複的值
- 5. 如何刪除表中的重複值
- 6. 刪除重複值
- 7. 刪除重複值
- 8. 如何從json列中刪除{}和[] postgresSQL
- 9. 刪除重複的列值
- 10. 刪除值,而不刪除重複
- 11. 如何刪除重複
- 12. 如何刪除重複行
- 13. 如何刪除重複項?
- 14. 如何刪除重複?
- 15. 刪除所有重複值
- 16. 刪除重複...用空值
- 17. matlab:刪除重複值
- 18. PHP:重複值刪除
- 19. 刪除重複值SQL
- 20. 刪除條件重複值
- 21. Vim的:如何刪除重複的
- 22. 刪除重複
- 23. 刪除重複
- 24. 刪除「重複」
- 25. 刪除重複
- 26. 重複刪除
- 27. 刪除重複
- 28. 刪除重複
- 29. 刪除重複
- 30. 刪除重複
描述你想刪除哪值。 – jarlh
爲了安全刪除[請參考這裏](http://donotforgetitmaster.blogspot.in/2014/08/delete-duplicate-data-from-redshift.html) – Viki888
我想刪除第2條記錄,第4條記錄,第7條記錄,第11次紀錄和第13次紀錄。 (見圖) –