Menu
Coddy logo textTech

Subqueries Part 1

CoddyのSQLジャーニー「基礎」セクションの一部 — レッスン 38/72。

サブクエリを使うと、複数のクエリを1つに組み合わせることができます。たとえば、以下の<strong>employees</strong>テーブルを考えてみましょう:

ID給与
148
234
346
413
528

サブクエリが必要なのは、WHERE salary > AVG(salary) を直接使用できないためです。なぜなら、AVG() のような集計関数は WHERE 句で使用できず、データがグループ化された後にしか使用できないからです。

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

サブクエリは、まず平均を計算(内側クエリ)し、その値を使用して従業員をフィルタリング(外側クエリ)することで、会社の平均給与よりも多く稼ぐ従業員を見つけるのに役立ちます。

平均が:(48 + 34 + 46 + 13 + 28) / 5 = 33.8 であるため、これがクエリの結果です:

ID給与
148
234
346
challenge icon

チャレンジ

簡単

利用可能なテーブルと列:

  • <strong>shop</strong>: <strong>price</strong>, <strong>quantity</strong>, <strong>category</strong>, <strong>list_date</strong>

価格が全アイテムの平均価格よりも高いすべてのアイテム(すべての列を選択)を取得するクエリを書いてください。

WHERE 句でサブクエリを使用して平均価格を計算し、各アイテムの価格をこの平均と比較してください。

チートシート

サブクエリは複数のクエリを1つに結合することを可能にします。WHERE句で直接集計関数(例: AVG())を使用できない場合に便利です。

基本的なサブクエリの構文:

SELECT column1, column2
FROM table_name
WHERE column1 > (
    SELECT AVG(column1)
    FROM table_name
);

サブクエリ(内側クエリ)は最初に実行されて平均を計算し、その後、外側クエリがその結果を使用してデータをフィルタリングします。

自分で試してみよう

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン