ホームページ >データベース >mysql チュートリアル >一意の識別子を持たずに NetezzaSQL で重複する行を削除するにはどうすればよいですか?
Netezza SQL での重複行の削除: 実践ガイド
Netezza SQL は、重複行を削除するための標準の WITH
句アプローチを直接サポートしていません。 ただし、堅牢な代替手段では USING
キーワードを使用します。この方法では、一意の識別子に依存せずに重複を効果的に排除します。
次のクエリは、「table_with_dups」という名前のテーブルから重複エントリを削除する方法を示しています。
<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 all relevant columns here</code>
重要な注意: column1
、column2
などを、重複行を定義するテーブル内の実際の列名に置き換えます。 重複の定義に関与するすべての列を含める必要があります。
このクエリは、ctid
(システム生成の一意の行識別子) と指定された列に基づいて行を比較します。 重複セットごとに、小さい方の ctid
を持つ行を削除します。
削除前検証:
DELETE
ステートメントを実行する前に、削除予定の行を確認することが重要です。 次のクエリを実行して、影響を受けるレコードをプレビューします:
<code class="language-sql">SELECT * 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 all relevant columns here</code>
この SELECT ステートメントは DELETE クエリを反映しているため、永続的な変更を加える前にデータを検査できます。 意図しないデータ損失を避けるために、この予防措置を強くお勧めします。
以上が一意の識別子を持たずに NetezzaSQL で重複する行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。