Menu
CoddyTech

サブクエリ 2

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

サブクエリには、主に3つの種類があります。

  1. スカラーサブクエリ - 単一の値(1行、1列)を返します
  2. 行サブクエリ - 複数の列を含む単一の行を返します
  3. テーブルサブクエリ - 複数の行と列を返します

たとえば、各サブクエリの種類の使用例をいくつか示します。

スカラーサブクエリ - 平均給与を上回る給与を得ている従業員を検索する:

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

行サブクエリ - Alice と同じ部署および給与の従業員を検索する

SELECT name
FROM employees
WHERE (department, salary) = (
    SELECT department, salary
    FROM employees
    WHERE name = 'Alice'
);

テーブルサブクエリ - 部門とその従業員数を表示する

SELECT department, count
FROM (
    SELECT department, COUNT(*) as count
    FROM employees
    GROUP BY department
) as dept_counts;

使用例に注目してください:

  • スカラー - 単純な比較(>, <, =)
  • 複数の列を照合する必要がある場合
  • 結果セットからクエリを実行する必要がある場合
challenge icon

チャレンジ

簡単

利用可能なテーブルとカラム:

  • shop:price、quantity、category、list_date

合計数量がショップ内のすべての数量の平均より大きいカテゴリを検索してください。categoryと、total_quantityという名前の合計数量を返してください。

重要:平均を計算するために、HAVING句内のサブクエリを使用する必要があります。ハードコードされた値や別のクエリは使用しないでください。サブクエリはHAVING内で直接shopテーブルからAVG(quantity)を計算する必要があります。

解決手順:

  1. まず、ショップ内のすべての数量の平均を計算するサブクエリを記述します:SELECT AVG(quantity) FROM shop
  2. 次に、各カテゴリの数量を合計し、HAVINGキーワードを使用してこのサブクエリと比較します
必須の出力形式: [翻訳したコンテンツ]

自分で試してみよう

quiz icon腕試し

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

基礎のすべてのレッスン

自分で練習してみよう: SQLプレイグラウンド