Built-In Aggregate Part 2
CoddyのSQLジャーニー「基礎」セクションの一部 — レッスン 35/72。
時には、各行を集計値と比較するなど、集計関数をより複雑な方法で使用する必要がある場合があります。このような場合に、入れ子になったクエリ(ネストされたクエリ)が便利です。
個々の行を集計値と組み合わせる計算を行いたい場合は、ネストされたクエリを使用する必要があります。その理由は以下の通りです。
これでは、期待する行ごとの結果は得られません:
SELECT value + MIN(value)
FROM table1理由は、集計関数が列全体に対して動作するのに対し、'value' 参照は行ごとに動作しようとしているためです。これを解決するために、入れ子になったクエリを使用します:
SELECT value + (SELECT MIN(value) FROM table1)
FROM table1これは、ネストされたクエリ (SELECT MIN(value) FROM table1) が最初に実行され、単一の値を返すためです。その値は、各行のメインクエリで利用できるようになります。
入れ子になった集計の一般的なユースケース:
1. 各値を平均と比較する
2. 合計に対するパーセンテージの計算
3. 最大値または最小値からの差を求める
チャレンジ
簡単利用可能なテーブルとカラム:
<strong>items</strong>:<strong>id</strong>,<strong>price</strong>
各アイテムの価格が、全アイテムの平均価格をどれだけ上回っているかを計算してください。アイテムのID、価格、および平均との差を表示してください。差の列の名前を diff_from_avg としてください。
結果を差の降順で並べ替えてください。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
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