始める無料で始める

相関サブクエリ 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
コードを編集して実行