無需唯一識別碼刪除重複項:Netezza解決方案
在大型Netezza表中,如果沒有唯一標識符,刪除重複行可能是一項艱鉅的任務。雖然提供的SQL查詢在其他資料庫中可能有效,但由於WITH語句後DELETE子句的限制,它在Netezza中會失敗。
為了克服這個挑戰,我們提出了一種利用USING關鍵字的替代方法。以下Netezza查詢可以無縫刪除重複行:
<code class="language-sql">DELETE FROM table_with_dups T1 USING table_with_dups T2 WHERE T1.ctid < T2.ctid AND T1.column1 = T2.column1 AND T1.column2 = T2.column2 -- ... add more AND conditions for other columns as needed ...</code>
以下是工作原理:
T1.ctid < T2.ctid
確保只刪除重複行中的一行。 在執行DELETE之前,您可以將DELETE替換為SELECT *並將USING替換為逗號(,)來查看重複項:
<code class="language-sql">SELECT * FROM table_with_dups T1, table_with_dups T2 WHERE T1.ctid < T2.ctid AND T1.column1 = T2.column1 AND T1.column2 = T2.column2 -- ... add more AND conditions for other columns as needed ...</code>
總而言之,此Netezza查詢提供了一種高效的解決方案,用於在沒有唯一標識符的情況下刪除重複行,無需複雜的子查詢或視窗函數。
以上是如何在沒有唯一識別碼的情況下刪除 Netezza 中的重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!