相関副問合せ | Oracle Database SQL (1Z0-071-JPN)
相関副問合せとは
相関副問合せ(Correlated Subquery)とは、副問合せ(サブクエリ)内部の条件式で、メインクエリ(外側のクエリ)で参照しているテーブルの列の値を直接参照・依存して実行される副問合せのことです。 Oracle Database SQL (1Z0-071) の試験対策においては、相関副問合せの基本概念だけでなく、実務で使われる構文ルールや例外事項、エラーが発生する条件を正確に把握しておくことが非常に重要です。
具体例
単に「全社の平均給料より高い社員」を探すのではなく、「各社員について、その社員が所属する『自分の部署の平均給料』よりも高い給料をもらっている社員」を抽出したい場合、主問合せの部署IDを副問合せに渡して比較します。
SELECT e.last_name, e.salary, e.department_id
FROM employees e
WHERE e.salary > (
SELECT AVG(sub.salary)
FROM employees sub
WHERE sub.department_id = e.department_id
);
もう少し詳しく