Advanced SQL Tutorial | Subqueries
What You Will Learn
- サブクエリの基本的な使い方を学びます
- サブクエリをSELECT文、FROM文、WHERE文で使用する方法を理解します
- サブクエリと他のSQL文(GROUP BY、PARTITION BYなど)の違いを認識します
Key Concepts
- サブクエリとは、1つのクエリの中に別のクエリを含むことです。
- サブクエリは、SELECT文、FROM文、WHERE文で使用できます。
- サブクエリは、テーブルを仮想的に作成することができますが、CTEやテンポラリーテーブルよりも遅いことがあります。
- サブクエリは、主クエリに必要なデータを提供するために使用できます。
- サブクエリは、データを絞り込むためにWHERE文で使用できます。
Code Examples
SELECT employee_id, salary, (SELECT AVG(salary) FROM employee_salary) AS all_average_salary
このサブクエリは、すべての従業員の平均給与を計算します。
SELECT * FROM (SELECT employee_id, salary, AVG(salary) OVER () AS all_average_salary FROM employee_salary) AS subquery
このサブクエリは、すべての従業員の平均給与を計算し、仮想テーブルを作成します。
WHERE employee_id IN (SELECT employee_id FROM employee_demographics WHERE age > 30)
このサブクエリは、30歳以上の従業員のIDを抽出します。
Lesson Summary
このレッスンでは、サブクエリの基本的な使い方を学びました。サブクエリは、1つのクエリの中に別のクエリを含むことで、データを絞り込んだり、仮想的なテーブルを作成したりすることができます。サブクエリは、SELECT文、FROM文、WHERE文で使用できますが、CTEやテンポラリーテーブルよりも遅いことがあります。サブクエリは、主クエリに必要なデータを提供するために使用できます。WHERE文でサブクエリを使用することで、データを絞り込むことができます。サブクエリは、データ分析やデータ処理に不可欠なツールです。
Practice Exercise
次の問題を解いてみましょう。次のテーブルを使用して、30歳以上の従業員の平均給与を計算してください。
CREATE TABLE employee_salary (
employee_id INT,
salary DECIMAL(10, 2)
);
CREATE TABLE employee_demographics (
employee_id INT,
age INT
);
ヒント:サブクエリを使用して、30歳以上の従業員のIDを抽出し、平均給与を計算してください。
What Is Next
次のレッスンでは、CTEとテンポラリーテーブルの使い方を学びます。CTEとテンポラリーテーブルは、サブクエリと似ていますが、より効率的で柔軟性があります。