一意の識別子のない重複を削除: Netezza ソリューション
大規模な Netezza テーブルでは、一意の識別子がないと重複行を削除するのが困難な作業になる可能性があります。提供された SQL クエリは他のデータベースでは機能する可能性がありますが、Netezza では WITH ステートメントの後の DELETE 句の制限により失敗します。
この課題を克服するために、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
は、重複行のうち 1 つだけが削除されることを保証します。 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 中国語 Web サイトの他の関連記事を参照してください。