人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQL5で、重複レコードのみを抽出する方法を教えてください。

23個のフィールドを持つテーブルに、8万件弱のレコードがあります。
この中で、特定の19フィールドが完全に同じものを重複レコードとし、この重複レコードのみを抽出したいと考えています。(重複しているレコードを全て抽出)

どのような方法が良いでしょうか?

●質問者: redice
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:23 フィールド レコード 抽出
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● mupic
●35ポイント

試していませんが、参考になれば。

http://oshiete1.watch.impress.co.jp/qa4281665.html


抽出したいデータのフィールドでgroup byして

count(*)してhavingでカウントが1より大きいデータをとれば?

SELECT hoge,count(*) AS count

FROM テーブル

GROUP BY hoge

HAVING count>1

◎質問者からの返答

回答ありがとうございました。試してみます。

追記:

上記を参考に色々と試したのですが、希望通りに重複データを全て取得できませんでした。


2 ● chuken_kenkou
●35ポイント

3個の列で、重複チェックする例です。

19個の列の場合、「c1,c2,c3」と例示している3箇所を、それぞれ19個の列を指定してください。

select * from t1
 where (c1,c2,c3) in(select c1,c2,c3 -- 19列の重複チェックの場合、19列すべてを指定する
 from t1
 group by c1,c2,c3 -- 19列の重複チェックの場合、19列すべてを指定す
 having count(*)>1
 )
◎質問者からの返答

回答ありがとうございました。試してみます。

追記:

試してみましたが、タイムアウト(?)になるようで、結果を取得できませんでした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ