• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLである条件の重複を抽出する方法は無いでしょうか?)

SQLで条件の重複を抽出する方法

このQ&Aのポイント
  • この記事では、SQLを使用して条件の重複を抽出する方法について説明します。
  • 具体的なテーブルの例を使用して、カラム「A1」,「A2」,「A5」,「A6」,「A7」が重複しているレコードを抽出する方法を解説します。
  • 行値式が使えないDBでの抽出方法や、データベースのレコード数が多い場合の効率的な抽出手法にも触れます。

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

  • ベストアンサー
  • dda167
  • ベストアンサー率76% (55/72)
回答No.2

SELECT DISTINCT T1.A1, T1.A2, T1.A3, T1.A4, T1.A5, T1.A6, T1.A7 FROM tblA T1, tblA T2 WHERE T1.A1 = T2.A1 AND T1.A2 = T2.A2 AND T1.A3 <> T2.A3 AND T1.A4 <> T2.A4 AND T1.A5 = T2.A5 AND T1.A6 = T2.A6 AND T1.A7 = T2.A7 という方法もあります。自己結合だからパフォーマンスはちょっと…… Oracleだと、ROWIDが使えるからDISTINCTはいらないですけどね。

その他の回答 (1)

  • root139
  • ベストアンサー率60% (488/809)
回答No.1

A1, A2, A5, A6, A7 でグループ化し、HAVING句でカウントが2以上のものに絞り込めば良いかと。 ただし、GROUP BYを行うのでパフォーマンスはかなり悪いかも知れません。 例) --------------------------------------------------------------- SELECT A1, A2, A5, A6, A7 FROM A GROUP BY A1, A2, A5, A6, A7 HAVING COUNT(*) > 1 ------------------------------------------------------------------

関連するQ&A