
MySQLで、複数フィールドの値が重複するレコードだけ抽出するにはどのようなSQLを投げたらよいでしょうか?
ググると「重複を排除」の例はたくさんありますが、「重複を抽出」の例が少なく質問させていただきました。
たとえば売上表みたいなテーブルがあるとします。
いくつかのフィールドのうち、「顧客ID」「注文日」「フラグ」の3つが同時に同じ値(重複している)のレコードたちだけを抽出したいと考えています。
※本来はこのような重複が存在すること自体がおかしいのですが、テーブル設計時に複合ユニークインデックスを設定し忘れてしまったため、このような重複が存在するテーブルとなっております。
下記のようなSQLを試してみましたが、期待した結果とは全く異なるものになってしまいました。
lang
1SELECT `注文no`,MIN(`顧客ID`), `注文日`,`フラグ` FROM `売上表` 2WHERE `フラグ` = 2 3GROUP BY `顧客ID`,`注文日` 4ORDER BY `注文日`,`注文no`
本来は、
注文no 顧客ID 注文日 フラグ
515 AAA 2015-07-11 2
516 AAA 2015-07-11 2
633 BBB 2015-07-13 2
634 BBB 2015-07-13 2
652 AAA 2015-07-13 2
653 AAA 2015-07-13 2
654 AAA 2015-07-13 2
たとえば上記のような結果が得られることを期待しています。
どんなSQLにしたらいいでしょうか。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/07/13 06:11