Choose Language

Analyze ⏱ 9 min

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とテンポラリーテーブルは、サブクエリと似ていますが、より効率的で柔軟性があります。