- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLである条件の重複を抽出する方法は無いでしょうか?)
SQLで条件の重複を抽出する方法
このQ&Aのポイント
- この記事では、SQLを使用して条件の重複を抽出する方法について説明します。
- 具体的なテーブルの例を使用して、カラム「A1」,「A2」,「A5」,「A6」,「A7」が重複しているレコードを抽出する方法を解説します。
- 行値式が使えないDBでの抽出方法や、データベースのレコード数が多い場合の効率的な抽出手法にも触れます。
- みんなの回答 (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 ------------------------------------------------------------------