相関サブクエリ vs INNER JOIN
多くの場合、相関サブクエリの結果は INNER JOIN を使って再現できます。要件にもよりますが、INNER JOIN はデータに1回だけアクセスするのに対し、相関サブクエリは外側のクエリの各行に対して実行されるため、INNER JOIN のほうが効率的なことがあります。
世界中の各国について、最大の都市の2017年の人口を調べたいとします。Earthquakes データベースの Nations テーブルを外側のクエリ、Cities テーブルをサブクエリとして使うことで取得できます。
まずはこのクエリを 相関サブクエリ として作成し、その後 INNER JOIN を用いた書き方に書き換えます。
この演習はコースの一部です
SQL Serverでクエリ性能を改善する
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
n.CountryName,
(SELECT MAX(c.___) -- Add 2017 population column
FROM Cities AS c
-- Outer query country code column
WHERE c.CountryCode = n.___) AS BiggestCity
FROM ___ AS n; -- Outer query table