Grouping Part 1
CoddyのSQLジャーニー「基礎」セクションの一部 — レッスン 36/72。
これまで、フィールド全体に対してデータを計算してきましたが、ここからは特定のグループに対してデータを計算する機能を導入します。
workers
| id | area | age |
|---|---|---|
| 1 | A | 35 |
| 2 | A | 37 |
| 3 | B | 29 |
| 4 | B | 39 |
次のように記述すると、
SELECT AVG(age) as avg_age FROM workers全従業員の平均年齢のみが取得されます。
各エリアごとの平均年齢を計算したい場合はどうすればよいでしょうか?
そのためには、GROUP BYキーワードを使用できます。
SELECT area, AVG(age) as avg_age FROM workers
GROUP BY area結果:
| area | avg_age |
|---|---|
| A | 36 |
| B | 34 |
これで、エリアAの平均年齢は36歳、エリアBの平均年齢は34歳であることがわかりました。
チャレンジ
簡単利用可能なテーブルとカラム:
<b>foods</b>:<b>name</b>,<b>type</b>,<b>pH</b>
食品のタイプごとに、pH値の平均を計算してください。
カラム名を type、ph_average としてください。
ROUND(value, 2) を使用して、平均値を小数点以下2桁に丸めてください。
チートシート
GROUP BY を使用して、特定のグループの集計関数を計算します:
SELECT area, AVG(age) as avg_age FROM workers
GROUP BY areaこれは、area 列で行をグループ化し、各グループの平均年齢を個別に計算します。
ROUND(value, decimal) を使用して、数値を指定した小数点以下の桁数に丸めます:
SELECT ROUND(AVG(age), 2) FROM workers自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
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