• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ユニークなデータの件数を取り出すSQL文)

ユニークなデータの件数を取り出すSQL文

このQ&Aのポイント
  • ユニークなデータの件数を取り出すためのSQL文の作成方法を教えてください。
  • DATE1、DATE2、DATE3のいずれかが同じ場合に行を取り出し、カウントする方法についても教えてください。
  • テーブルのデータをCDのみ取り出す際には、どうすれば良いでしょうか。

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

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

NOが主キー、CDとDATEはCD1・DATE1から順に設定されていくという前提で、 select COUNT(*), CD1, CD2, CD3 from ( --DATE1、DATE2、DATE3の全てが一致 select T1.CD1, T1.CD2, T1.CD3 from T T1 where exists ( select * from T T2 where T1.NO <> T2.NO and (T1.CD1 = T2.CD1 and T1.DATE1 = T2.DATE1) and (T1.CD2 = T2.CD2 and T1.DATE2 = T2.DATE2) and (T1.CD3 = T2.CD3 and T1.DATE3 = T2.DATE3) ) union all --DATE1、DATE2のみが一致 select T1.CD1, T1.CD2, null from T T1 where exists ( select * from T T2 where T1.No <> T2.NO and (T1.CD1 = T2.CD1 and T1.DATE1 = T2.DATE1) and (T1.CD2 = T2.CD2 and T1.DATE2 = T2.DATE2) and ((T1.CD3 is null and T2.CD3 is null) or ((T1.CD3 = T2.CD3) and ((T1.DATE3 <> T2.DATE3)))) ) union all --DATE1のみしかデータがない select T1.CD1, null, null from T T1 where T1.CD2 is null ) group by CD1, CD2, CD3; とか。 やりたいことを正しく理解できているか分かりませんが。

boooone
質問者

お礼

ありがとうございました。バッチリです。

関連するQ&A