• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定の値が入っているレコードを抽出する方法について)

特定の値が入っているレコードを抽出する方法について

このQ&Aのポイント
  • 特定の値が入っているレコードを抽出する方法について調べています。
  • 下記のテーブルにはfield1とfield2の値があり、特定の条件を満たすレコードを抽出したいと思っています。
  • 具体的には、field2にグループAに該当する値と、グループBに該当する値が共に1つずつ入っているfield1の値を抽出したいです。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

以下は一例です。 SELECT field1 FROM T GROUP BY field1 HAVING MAX((CASE WHEN field2 in (1,2,3) THEN 1 ELSE 0 END) |(CASE WHEN field2 in (101,102,103) THEN 2 ELSE 0 END))=3 その他、サブクエリでAグループ、Bグループを作り、INNER JOINする 方法などが考えられます。

iroha_168
質問者

お礼

ありがとうございます。 教えていただいた記述そのままでは「レコードが見つかりません。」と表示されてしまいましたが、下記のように修正した所、意図した動作をしているようでした(テーブル名はTでは無く、main_tableにさせていただきました)。 SELECT field1 FROM main_table GROUP BY field1 HAVING MAX(CASE WHEN field2 in (1,2,3) THEN 1 ELSE 0 END)>0 And MAX(CASE WHEN field2 in (101,102,103) THEN 2 ELSE 0 END)>0 以上、よろしくお願いします。

関連するQ&A