SQLLearn
← レッスン一覧/中級

サブクエリ

サブクエリとは?

SQL文の中に別のSQL文を埋め込む技術です。括弧で囲んで記述します。

WHERE句のサブクエリ

全従業員の平均給与より高い給与の従業員を取得:

SELECT name, salary
FROM employees
WHERE salary > (
    SELECT AVG(salary) FROM employees
);

INを使ったサブクエリ

東京にある部署の従業員を取得:

SELECT name, department_id
FROM employees
WHERE department_id IN (
    SELECT id FROM departments WHERE location = '東京'
);

FROM句のサブクエリ(派生テーブル)

SELECT dept_avg.department_id, dept_avg.avg_sal
FROM (
    SELECT department_id, AVG(salary) AS avg_sal
    FROM employees
    GROUP BY department_id
) dept_avg
WHERE dept_avg.avg_sal > 500000;
GROUP BY・HAVINGで集計するインデックスとパフォーマンス

SQL エディタ

練習問題

問題 1

全従業員の平均給与より高い給与を持つ従業員のnameとsalaryを取得してください