庭に訪れた野鳥の数を記録する“観測”表がある。
観測のたびに通番を振り、鳥名と観測数を記録している。
AVG関数を用いて鳥名別に野鳥の観測数の平均値を得るために、一度でも訪れた野鳥については、観測されなかったときの観測数を0とするデータを明示的に挿入する。
SQL文のaに入る字句はどれか。
ここで、通番は初回を1として、観測のタイミングごとにカウントアップする。
CREATE TABLE 観測(
通番 INTEGER,
鳥名 CHAR(20),
観測数 INTEGER,
PRIMARY KEY (通番, 鳥名))
INSERT INTO 観測
SELECT DISTINCT obs1. 通番, obs2. 鳥名, 0
FROM 観測 AS obs1, 観測 AS obs2
WHERE NOT EXISTS(
SELECT * FROM 観測 AS obs3
WHERE a
AND obs2. 鳥名 = obs3. 鳥名)
ア
obs1. 通番 = obs1. 通番
イ
obs1. 通番 = obs2. 通番
ウ
obs1. 通番 = obs3. 通番
エ
obs2. 通番 = obs3. 通番
答え ウ
【解説 】
観測されなかったときの観測数を0とするデータを明示的に挿入するには、過去に観測した鳥名に、今回観測した鳥名があったらそれを除くという処理が必要になる。
また、「SELECT DISTINCT obs1. 通番, obs2. 鳥名, 0」からobs1が今回の観測データ、obs2が過去の観測データになり、「obs2. 鳥名 = obs3. 鳥名」からobs3を今回の観測データになるので、aにはobs1とobs3が今回の観測データであることを関連付ける字句が入るので
obs1. 通番 = obs3. 通番
(ウ)になります。
【キーワード 】
・SQL文
【キーワードの解説 】
SQL文
SQL文で出てくる句について説明します。
SELECT
出力するデータを指定します。
DISTINCT
同じ内容の(重複した)データを除きます。
FROM
操作するデータを指定します。
AS
操作するデータの名前を変えます。
WHERE
操作する条件を指定します。
GROUP BY
同じ内容のデータをまとめます。
HAVING
GROUP BYで抽出条件を指定する。
COUNT
個数を数えます。
SUM
集計(加算)します。
AVG
平均値を計算します。
もっと、「SQL文」について調べてみよう。
戻る
一覧へ
次へ