SQLでGROUP BYとHAVINGを使ってデータの重複を探して見ます。
GROUP BYとHAVINGで重複を探す
SQLでGROUP BYとHAVINGを使ってデータの重複を探して見ます。
実行するSQL
--テーブル作成 CREATE TABLE test_table ( no INT ,name VARCHAR(20) ) --データ作成 INSERT INTO test_table VALUES ( 1, '太郎さん1' ) INSERT INTO test_table VALUES ( 2, '二郎さん' ) INSERT INTO test_table VALUES ( 3, '三郎さん' ) INSERT INTO test_table VALUES ( 4, '四郎さん' ) INSERT INTO test_table VALUES ( 1, '太郎さん2' ) INSERT INTO test_table VALUES ( 5, '五郎さん1' ) INSERT INTO test_table VALUES ( 1, '太郎さん3' ) INSERT INTO test_table VALUES ( 5, '五郎さん2' ) --GROUP BYとHAVINGを使って重複を取得 SELECT no AS 重複しているNO ,COUNT(no) AS 重複している件数 FROM test_table GROUP BY no HAVING COUNT(no) > 1 --テーブル削除 DROP TABLE test_table
GROUP BYでCOUNTした結果でその件数が2件以上あるものをHAVINGで抜き出しています。
実行結果は
重複しているNO 重複している件数 1 3 5 2
になります。
このようにすればテーブル内でのレコードの重複を簡単に見つけ出すことができます。