レコードの値の平均値を求めるSQLを紹介します。
の書式でAVG関数を呼び出します。
特定の条件に一致するレコードの平均を求める場合は
特定の列でグループにまとめて集計する場合は
とします。
id | name | price | category |
---|---|---|---|
1 | Penguin | 250 | Bird |
2 | Bear | 1050 | Mammal |
3 | Duck | 150 | Bird |
4 | Camel | 550 | Mammal |
5 | Owl | 185 | Bird |
6 | Whale | 880 | Mammal |
上記のテーブルで"price"の平均を求める場合は以下のSQLを実行します。
select AVG(price) from products
結果は以下となります。
(列名なし) |
---|
510.833333 |
列名を付ける場合のSQLは以下になります。
select AVG(price) as average from products
select agerage=AVG(price) from products
結果は以下となります。
average |
---|
510.833333 |
id | name | price | category |
---|---|---|---|
1 | Penguin | 250 | Bird |
2 | Bear | 1050 | Mammal |
3 | Duck | 150 | Bird |
4 | Camel | 550 | Mammal |
5 | Owl | 185 | Bird |
6 | Whale | 880 | Mammal |
上記のテーブルでcategoryが"Mammal"の平均を求める場合は以下のSQLを実行します。
select AVG(price) from products where category='Mammal'
結果は以下となります。
(列名なし) |
---|
826.666666 |
列名を付ける場合のSQLは以下になります。
select AVG(price) as average from products where category='Mammal'
または
select agerage=AVG(price) from products where category='Mammal'
結果は以下となります。
average |
---|
826.666666 |
group by を用いると指定した列ごとのグループにまとめて、集計することができます。
id | name | price | category |
---|---|---|---|
1 | Penguin | 250 | Bird |
2 | Bear | 1050 | Mammal |
3 | Duck | 150 | Bird |
4 | Camel | 550 | Mammal |
5 | Owl | 185 | Bird |
6 | Whale | 880 | Mammal |
上記のテーブルでcategoryごとの平均を求める場合は以下のSQLを実行します。
select category,AVG(price) as average from products group by category
結果は以下となります。
category | average |
---|---|
Bird | 195.000000 |
Mammal | 826.666666 |