1. ホーム
  2. sql

[解決済み] sqliteデータベースから重複した行を削除する

2022-12-18 12:31:27

質問

SQLite3 で 3600 万行の巨大なテーブルを持っています。この非常に大きなテーブルの中に、2 つのカラムがあります。

  • hash - テキスト
  • d - リアル

いくつかの行は重複しています。つまり、両方の hashd は同じ値を持ちます。もし二つのハッシュが同じなら d . しかし、二つの同じ d は、二つの同じ hash を意味するものではありません。

重複している行を削除したい。主キー列がないのですが。

一番早い方法は何でしょうか?

どのように解決するのですか?

行を区別する方法が必要です。 あなたのコメントに基づいて、あなたは特別な rowidカラム を使用することができます。

重複を削除するために、一番下の rowid につき (hash,d) :

delete   from YourTable
where    rowid not in
         (
         select  min(rowid)
         from    YourTable
         group by
                 hash
         ,       d
         )