サブクエリ 1
CoddyのSQLジャーニー「基礎」セクションの一部。レッスン 38/72。
サブクエリを使用すると、複数のクエリを 1 つにまとめることができます。たとえば、次の <strong>employees</strong> テーブルを考えてみましょう。
| id | 給与 |
|---|---|
| 1 | 48 |
| 2 | 34 |
| 3 | 46 |
| 4 | 13 |
| 5 | 28 |
サブクエリが必要なのは、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 | 給与 |
|---|---|
| 1 | 48 |
| 2 | 34 |
| 3 | 46 |
チャレンジ
簡単利用可能なテーブルと列:
shop:price,quantity,category,list_date
価格がすべての商品の平均価格より高いすべての商品(すべての列を選択)を見つけるクエリを書いてください。
WHERE句のサブクエリを使用して平均価格を計算し、その後、各商品の価格をこの平均と比較してください。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: SQLプレイグラウンド