問74
頻出度★★☆
“気温”表の2011年の7月1日から8月31日までの間で,最高気温が35度以上のレコードを全て抽出したい。抽出条件として,適切なものはどれか。 気温
| 年 | 月 | 日 | 最高気温 |
|---|---|---|---|
| 2011 | 1 | 1 | 12 |
| 2011 | 1 | 2 | 11 |
| 2011 | 1 | 3 | 9 |
| : | : | : | : |
| 2011 | 7 | 31 | 34 |
| 2011 | 8 | 1 | 36 |
| : | : | : | : |
| 2011 | 12 | 31 | 10 |
| 2012 | 1 | 1 | 11 |
この問題の解説と、これまでの解答の記録です。
“気温”表の2011年の7月1日から8月31日までの間で,最高気温が35度以上のレコードを全て抽出したい。抽出条件として,適切なものはどれか。 気温
| 年 | 月 | 日 | 最高気温 |
|---|---|---|---|
| 2011 | 1 | 1 | 12 |
| 2011 | 1 | 2 | 11 |
| 2011 | 1 | 3 | 9 |
| : | : | : | : |
| 2011 | 7 | 31 | 34 |
| 2011 | 8 | 1 | 36 |
| : | : | : | : |
| 2011 | 12 | 31 | 10 |
| 2012 | 1 | 1 | 11 |
月の条件が (月 = 7 and 月 = 8) で、1つのレコードの月が同時に7かつ8になることはないため、この括弧内は常に偽となり1件も抽出されない。さらに 最高気温 ≦ 35 は「35度以下」を意味し、求める「35度以上」と逆向き。二重に誤り。
最高気温 ≧ 35 は正しいが、月の条件が (月 = 7 and 月 = 8) と and になっており、同時に7月かつ8月であるレコードは存在しないため結果は空になる。7月・8月の両方を取るには or が必要。
月の条件 (月 = 7 or 月 = 8) は正しいが、最高気温 ≦ 35 が「35度以下」となっており、求める「35度以上」と逆。低温側のレコードを拾ってしまう。
正解 抽出したいのは「2011年」かつ「7月1日~8月31日」かつ「最高気温が35度以上」のレコード。エは 年 = 2011 and (月 = 7 or 月 = 8) and 最高気温 ≧ 35 で、この3条件を正しく表す。ポイントは月の指定で、各レコードの月は1つの値しか持たないため、7月と8月の両方のレコードを取るには「月 = 7 または 月 = 8」と or で結ぶ必要がある。また「35度以上」は35を含めて上側なので 最高気温 ≧ 35 が正しい。よってエが適切。