戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2016年 秋期 74


問題文

“気温”表の2011年の7月1日から8月31日までの間で、最高気温が35度以上のレコードを全て抽出したい。抽出条件として、適切なものはどれか。
ITパスポート 2016年 秋期  問74の問題画像

選択肢

年 = 2011 and (月 = 7 and 月 = 8) and最高気温 ≦ 35
年 = 2011 and (月 = 7 and 月 = 8) and 最高気温 ≧ 35
年 = 2011 and (月 = 7 or 月 = 8) and 最高気温 ≦ 35
年 = 2011 and (月 = 7 or 月 = 8) and 最高気温 ≧ 35(正解)

🔒 解説は解答すると表示されます

気温表から2011年7月1日〜8月31日の最高気温が35度以上のレコードを抽出する条件【ITパスポート 解説】

正解の理由

求められている条件は「2011年の7月1日から8月31日の間で、最高気温が35度以上」のレコードです。これを論理式に直すと「年 = 2011」かつ「月が7または8」かつ「最高気温が35以上()」になります。選択肢の中でこの条件を満たすのは の「年 = 2011 and (月 = 7 or 月 = 8) and 最高気温 ≧ 35」です。
ポイント:
  • 「7月1日から8月31日まで」は月で見ると「月 = 7 または 月 = 8」です(7月と8月の両方を含む)。
  • 「35度以上」は数学的に (greater than or equal)なので、等号を含む比較(≧)を使います。
  • 論理結合はすべて満たす必要があるため各条件は AND(かつ)で結びます。

解法ステップ

  1. 日本語の条件を分解する
    • 年が2011年である。
    • 月が7月または8月である。
    • 最高気温が35度以上である。
  2. 論理記号に置き換える
    • 年 = 2011
    • (月 = 7 OR 月 = 8) (ORは「または」)
    • 最高気温 >= 35
  3. すべてを AND(かつ)で結ぶ
    • 年 = 2011 AND (月 = 7 OR 月 = 8) AND 最高気温 >= 35
  4. (補足)データベースで書くときの例(SQL:Structured Query Language(構造化問合せ言語)、データ抽出に使う言語)
-- 月をINで書く例
SELECT * FROM 気温
WHERE= 2011
  ANDIN (7, 8)
  AND 最高気温 >= 35;

-- 日付列がある場合は日付範囲で指定する方が確実
SELECT * FROM 気温
WHERE 日付 BETWEEN '2011-07-01' AND '2011-08-31'
  AND 最高気温 >= 35;
※ SQL(Structured Query Language)はデータベースに対して「欲しいデータを指定して取り出す」ための言語です。IN句やBETWEEN句は後述の補足で説明します。

選択肢別の誤答解説

  • ア: 年 = 2011 and (月 = 7 and 月 = 8) and 最高気温 ≦ 35
    • 「月 = 7 and 月 = 8」は同じレコードで月が同時に7と8になることを意味し、現実にはあり得ません(常に偽)。さらに「最高気温 ≦ 35」(35以下)で向きが逆です。よって不正解です。
  • イ: 年 = 2011 and (月 = 7 and 月 = 8) and 最高気温 ≧ 35
    • 最高気温の比較は正しい(≧ 35)ものの、月に対する AND 条件が矛盾しており、該当レコードが存在しません。よって不正解です。
  • ウ: 年 = 2011 and (月 = 7 or 月 = 8) and 最高気温 ≦ 35
    • 月の指定は正しい(7または8)ですが、最高気温が「≦ 35」(35以下)となっており、問題の「35度以上」と逆です。よって不正解です。
  • エ: 年 = 2011 and (月 = 7 or 月 = 8) and 最高気温 ≧ 35
    • 年・月・温度の条件がすべて問題文どおりに表現されているため正しい選択です。

よくある誤解

  • 「月 = 7 and 月 = 8」を書くと両月が同時に成立すると思いがちだが、ANDは「両方同時に成立」を意味するので現実の1レコードでは不可能です。ここでは OR(または)を使います。
  • 「35度以上」を「> 35」と書くミス。35度ちょうどを含めるなら (≧)を使います。
  • SQLや表計算でBETWEENやINの挙動(含む・含まない)を確認せずに使うと境界値で誤ることがあります。BETWEENはSQLでは両端を含みます(inclusive)。

補足コラム

  • 月だけで絞る方法と日付で絞る方法の違い
    • 今回の期間は「7月1日〜8月31日」で月単位で指定しても正しく取れます。しかし、もし期間が「7月15日〜8月10日」のように月の途中から途中までなら、月条件だけでは不十分です。日付(年-月-日)で範囲指定(例:日付 BETWEEN '2011-07-15' AND '2011-08-10')する方が堅牢です。
  • IN句とBETWEEN句の簡単な説明
    • IN句:特定の値の集合に含まれるかを調べる(例:月 IN (7,8) は月が7か8かを意味)。
    • BETWEEN句:範囲内かを調べる(例:日付 BETWEEN '2011-07-01' AND '2011-08-31' は開始日と終了日を含む)。
  • データ型に注意
    • 月が文字列("07")で格納されている場合、比較の仕方が変わることがあります。整数か文字列かを確認して条件を書くと安全です。

FAQ

Q. 「月 = 7 or 月 = 8」はSQLでどう短く書けますか?
A. 月 IN (7, 8) と書けます。IN句は複数の候補のいずれかに一致するかを調べます。
Q. 35度ちょうどは抽出されますか?
A. はい。問題文は「35度以上」なので、(≧)で比較します。35度も含まれます。
Q. BETWEENは両端を含みますか?
A. 多くのデータベースのSQLでは BETWEEN は両端を含みます(inclusive)。ただし、使う環境で仕様を確認してください。
Q. 「月 = 7 and 月 = 8」はなぜダメ?
A. ANDは「同時に成立」を意味します。1つのレコードの月が同時に7と8になることは不可能なので、常に偽になります(該当なし)。

関連キーワード: SQL、IN句、BETWEEN句、論理演算子、AND、OR、比較演算子、データ抽出、日付フィルタ、フィルタ条件、ブール代数
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について