• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL構文)

SQL構文で重複データを洗い出す方法

このQ&Aのポイント
  • SQL構文で、MASTER_TBLのCDとKAKU_CDの2列で一意なデータを洗い出す方法を教えてください。
  • サブクエリ単体では正しい結果が取得できるが、下記のSQLを実行すると全データ件数×全データ件数が返ってきます。
  • 重複行のみ表示するための構文ミスがあるのかどうか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#18558
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を尊重するとこんな感じでしょうか。

guest98
質問者

お礼

解決しました。 エラーは私のミスでした。 載せて頂いたSQLで望む結果が得られました。 ありがとうございました。

guest98
質問者

補足

返答ありがとうございます。 早速試してみましたが、 「値の個数が多すぎます。」というエラーが出てしまいました。 元のSQLを尊重しなくてもいいので、 成功する方法があれば教えてください!

関連するQ&A