Accessのクエリで重複レコードをチェックする(SQLはWHEREではなくHAVING)
次のようなテーブルで、名前が重複していないかチェックしたいこともあります。
重複レコードをチェックする重複クエリウィザードを使う場合は、「作成」‐「クエリウィザード」メニューで「重複クエリウィザード」を選択します。
重複を調べるテーブル(またはクエリ)を選択して次に進みます。
重複をチェックするフィールドを選択します。ここでは、「名前」をチェックします。
「完了」をクリックすると、「xxxxxの重複レコード」という名前のクエリに重複結果が表示されます。ここでは、「西沢直木」が2件あることを示しています。
※「完了」ではなく「次へ」をクリックすると、結果に表示するフィールドや、クエリ名を指定することもできます。
SQLビューで重複をチェックするSQLを入力して実行する
「作成」‐「クエリデザイン」メニューで空のクエリを作成して、SQLビューで直接SQLを入力してレコードの重複をチェックする方法もあります。
たとえば、次のようなSQLをSQLビューに入力します。
SELECT 名前, Count(名前) AS カウント FROM 重複チェック GROUP BY 名前 HAVING Count(名前)>=2;
- SELECT 名前, Count(名前) AS カウント ---「名前」「カウント」というフィールドを持つクエリを作成します。カウントフィールドは、名前の件数を集計します。
- GROUP BY 名前 --- 名前ごとに集計します。
- HAVING Count(名前)>=2 --- 名前の件数が2件以上あった場合のみ(つまり重複している)表示します。
※「2件以上あった場合は」の絞り込みは、集計結果に対して絞り込みをかけるので、全データから条件抽出するWHEREではなく、HAVINGを使います。
実行すると、名前が重複したレコードが表示されます。