- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL構文)
SQL構文で重複データを洗い出す方法
このQ&Aのポイント
- SQL構文で、MASTER_TBLのCDとKAKU_CDの2列で一意なデータを洗い出す方法を教えてください。
- サブクエリ単体では正しい結果が取得できるが、下記のSQLを実行すると全データ件数×全データ件数が返ってきます。
- 重複行のみ表示するための構文ミスがあるのかどうか教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#18558
回答No.1
実際にSQLを流してないので、合っているか分かりませんが、 SELECT M1.CD AS CD1, M1.KAKU_CD AS KAKU_CD1, M1.UPDATE_DATE AS UPDATE_DATE1 FROM MASTER_TBL M1, ( SELECT M2.CD || M2.KAKU_CD AS CODE2 FROM MASTER_TBL M2 GROUP BY M2.CD, M2.KAKU_CD HAVING COUNT(*) > 1 ) SUB_T; WHERE M1.CD || M1.KAKU_CD = CODE2 ORDER BY 1, 2, 3 ; もしくは SELECT M1.CD AS CD1, M1.KAKU_CD AS KAKU_CD1, M1.UPDATE_DATE AS UPDATE_DATE1 FROM MASTER_TBL WHERE M1.CD || M1.KAKU_CD IN ( SELECT M2.CD || M2.KAKU_CD AS CODE2 FROM MASTER_TBL M2 GROUP BY M2.CD, M2.KAKU_CD HAVING COUNT(*) > 1 ) SUB_T; ORDER BY 1, 2, 3 ; もっといい方法もありますが、元のSQLを尊重するとこんな感じでしょうか。
お礼
解決しました。 エラーは私のミスでした。 載せて頂いたSQLで望む結果が得られました。 ありがとうございました。
補足
返答ありがとうございます。 早速試してみましたが、 「値の個数が多すぎます。」というエラーが出てしまいました。 元のSQLを尊重しなくてもいいので、 成功する方法があれば教えてください!