- 列を指定して重複を削除する方法:
重複する列を指定して、重複した行を削除することができます。例えば、以下のようなテーブルがあるとします。
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
name列を基準に重複を削除する場合、以下のクエリを実行します。
DELETE FROM employees WHERE id NOT IN (
SELECT MIN(id) FROM employees GROUP BY name
);
このクエリは、各nameの最小idを持つ行以外を削除します。
- 一時テーブルを使用する方法:
一時テーブルを作成し、重複を削除する方法もあります。以下のような手順で行います。
まず、一時テーブルを作成します。
CREATE TEMPORARY TABLE temp_employees AS
SELECT DISTINCT * FROM employees;
次に、元のテーブルを削除し、一時テーブルの内容を元のテーブルに挿入します。
DROP TABLE employees;
ALTER TABLE temp_employees RENAME TO employees;
これにより、重複した行が削除されます。
以上がSQLiteで重複を削除する方法のいくつかです。必要に応じて、これらの方法を使ってデータベース内の重複を効果的に削除することができます。