• 締切済み

重複レコードを高速で取得するSQL

Access(mdb)から約2万件レコードのあるテーブルがあるとします。 列数は20ほど。 その中から、3つの列において重複しているレコードを取得したいのですが、 高速に取得する方法はありますでしょうか? (VB.NETで、重複レコードをユーザーに示す処理を作成したいのです) 以下のSQLを試したところ、1分以上時間がかかってしまいました。 ----------------------------- SELECT * FROM テーブルA table1 WHERE EXISTS ( SELECT * FROM テーブルA table2 WHERE table1.列A = table2.列A   table1.列B = table2.列B   table1.列C = table2.列C GROUP BY table2.列A HAVING COUNT(table2.列A) > 1 ) ----------------------------- アドバイスをお願いします。

みんなの回答

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

1)列A,B,CのINDEXを貼ること。 2)SELECT count(*),列A, 列B, 列C from テーブルA group by列A 列B 列C HAVING COUNT(*) > 1 とやってキーを取得してからselect * でその他の列を取得する。 3)2)のVIEWを作ってしまう。 と、読むだけでほしい条件のデータが存在します。

関連するQ&A