SQL4 択難易度 応用

結果は?(sales: ann 350, bob 500 / dev: cat 400, dan 100)

SELECT name FROM emp eWHERE salary > (SELECT AVG(salary) FROM emp WHERE dept = e.dept)ORDER BY name;

正答

  1. bob, cat
  2. ann, bob, cat
  3. bob
  4. ann, dan

解説

サブクエリの中で外側の e.dept を参照しているため、外側の 1 行ごとにその人の部署の平均給与を計算し直す(相関サブクエリ)。sales の平均は 425 で bob だけが上回り、dev の平均は 250 で cat だけが上回る。選択肢 2 の ann, bob, cat は dept = e.dept を無視して全社平均 337.5 と比べた読み方で、相関条件の有無で結果が変わる。選択肢 4 は不等号の向きを逆にした結果。

参考: www.sqlite.org

subquerycorrelated-subqueryavg

この問題を含む SQL のテストを制限時間つきで解く

SQLクイズへ