データベース
次のSQL文において、副問い合わせ(サブクエリ)の役割として適切なものはどれか。 SELECT 氏名, 給与 FROM 社員 WHERE 給与 > (SELECT AVG(給与) FROM 社員);
ア.社員テーブルを2つのグループに分割し、それぞれの平均を計算する。
イ.全社員の平均給与を計算し、その値より給与が高い社員を絞り込む条件として使用する。正解
ウ.最も給与の高い社員と最も低い社員を同時に取得する。
エ.各部署の平均給与と全体平均を比較して、全体平均を上回る部署を抽出する。
解説
副問い合わせは「先に計算してから比較する電卓の二段階計算」です。まず内側の式(全平均給与)を計算し、その結果を外側の条件式に代入して検索します。
なぜ イ が正解か
副問い合わせ(SELECT AVG(給与) FROM 社員)は外側のWHERE句が評価される前に実行され、全社員の平均給与という単一の値を返します。この値が WHERE 給与 > の比較対象として使われ、平均より高い給与を持つ社員の氏名と給与が最終的に返されます。副問い合わせが返す値は1つの数値なので、スカラ副問い合わせと呼ばれます。
出典: AI生成問題(学習用)