本記事では以下の集約関数を見ていきます.
<使用イメージ>
- 足し算:
SUM()
- データの個数確認:
COUNT()
- 平均:
AVG()
- 最大値:
MAX()
- 最小値:
MIN()
上記の関数は結果をひとつのデータとして返してきます.
例示を見ながら確認していきましょう.
PythonやPC関連の情報をまとめているブログです
本記事では以下の集約関数を見ていきます.
<使用イメージ>
SUM()
COUNT()
AVG()
MAX()
MIN()
上記の関数は結果をひとつのデータとして返してきます.
例示を見ながら確認していきましょう.
psql (PostgreSQL) 14.5
まずはサンプルのテーブルを作成します.
id | name | age | weight | birdseed |
---|---|---|---|---|
1 | ぶんぶん | 2 | 21.30 | 4.00 |
2 | ピースケ | 1 | 22.60 | 4.00 |
3 | シロ | 3 | 23.70 | 4.00 |
4 | うずら | 1 | 25.90 | 6.00 |
5 | らむね | 5 | 24.00 | 5.00 |
6 | シルバー | 2 | 23.50 | 5.00 |
SUM()
birdseed 列をすべて足します.
結果を見ると,足し算された結果が1つの値として返ってきていますね.
sum |
---|
28.00 |
COUNT()
データの個数をカウントします.
6つのデータ(行)がカウントされて返ってきました.
buncho_count |
---|
6 |
注意
COUNT(*)
とすると要素がNULLであってもカウントして返してくれます.
特定の列を指定する場合はNULLをカウントせずに返してくれます.
AVG()
データの平均値を算出します.1
weight |
---|
23.50 |
MAX()
MIN()
データの最大値・最小値を表示してくれます.
max |
---|
25.90 |
min |
---|
21.30 |
ここではWHERE
句やGROUP BY
句,HAVING
句で条件を絞って集計する例を見てみます.
age(年齢)が1歳の文鳥だけに絞って集計してみます.
年齢が1歳の2羽におけるbirdseedを足した結果が返ってきていますね.
sum |
---|
10.00 |
GROUP BY
句でage(年齢)ごとにまとめて足し算してみましょう.
age | sum |
---|---|
1 | 10.00 |
2 | 9.00 |
3 | 4.00 |
5 | 5.00 |
今回はデータが少ないのであまりまとまっていませんが,それぞれの年齢ごとにbirdseedが集計されていることがわかりますね.
参考
クエリの最後にあるORDER BY
句はage列を基準に並び替えるために入れています.
上記のグループごとにまとめて足し算した結果のうち,birdseedが7以上のデータを抽出します.
このような場合にはHAVING
句に集約関数を記載します.
age | birdseed |
---|---|
1 | 10.00 |
2 | 9.00 |
集約した結果に対し,さらに絞り込んだ結果を得ることができました!
SQLの集約関数について基本的な使い方を勉強しました.
ROUND(AVG(weight), 2)
としているのは,出力結果を小数点第二位までとするためです. ↩