こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

重複レコードを高速で取得する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
)
-----------------------------

アドバイスをお願いします。

投稿日時 - 2017-12-17 17:02:51

QNo.9408825

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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を作ってしまう。
と、読むだけでほしい条件のデータが存在します。

投稿日時 - 2017-12-17 17:13:21

あなたにオススメの質問