Subqueries Part 1
CoddyのSQLジャーニー「基礎」セクションの一部 — レッスン 38/72。
サブクエリを使用すると、複数のクエリを1つに組み合わせることができます。例えば、以下の<strong>employees</strong>テーブルを考えてみましょう。
| id | salary |
|---|---|
| 1 | 48 |
| 2 | 34 |
| 3 | 46 |
| 4 | 13 |
| 5 | 28 |
AVG() のような集約関数は WHERE 句で使用できず、データがグループ化された後にしか使用できないため、WHERE salary > AVG(salary) を直接使うことはできません。そのため、サブクエリが必要になります。
SELECT id, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);サブクエリを使用すると、まず平均給与(内部クエリ)を計算し、次にその値を使用して従業員を絞り込む(外部クエリ)ことで、会社の平均給与よりも多く稼いでいる従業員を見つけることができます。
平均は (48 + 34 + 46 + 13 + 28) / 5 = 33.8 となるため、クエリの結果は次のようになります:
| id | salary |
|---|---|
| 1 | 48 |
| 2 | 34 |
| 3 | 46 |
チャレンジ
簡単利用可能なテーブルと列:
<strong>shop</strong>:<strong>price</strong>,<strong>quantity</strong>,<strong>category</strong>,<strong>list_date</strong>
価格がすべての商品の平均価格よりも高いすべての商品(すべての列を選択)を取得するクエリを記述してください。
WHERE 句でサブクエリを使用して平均価格を計算し、各商品の価格をこの平均と比較してください。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns