集約関数(SUM、MAX、MIN、AVG、COUNT)
集約関数を使うと、データ件数(行数)や、複数の価格から最大価格、最小価格などを得ることができます。
ここでは、集約関数である「SUM」「MAX」「MIN」「AVG」「COUNT」についてその使い方を見ていきましょう。
目次
1. はじめに
ここでは、商品テーブル(Shouhin)を使って、各集約関数の使い方を見ていきます。
まずは、Shouhinテーブルから商品の値段(price)を取り出してみましょう。
SELECT price FROM Shouhin;
price |
---|
256 |
300 |
128 |
・ ・ ・ |
上の結果は、商品の値段一覧です。
この一覧(複数行)に対して集約関数を使っていきます。
集約関数の「集約」とは、複数の行を1つにまとめるという意味があります。
集約関数によって、複数の行から1つのデータを得るといったイメージです。
2. SUM関数(ある列値の合計値を得る)
SUM関数は、指定した列の値全体から合計値を計算して返します。
Shouninテーブルに登録されている商品の値段の合計を取得してみます。
SELECT
SUM( price )
FROM
Shouhin;
SUM( price ) |
---|
14114 |
商品の値段の合計が取得できました。
結果は1行ですよね?
これは、集約関数によって、複数行が1行に集約された(まとめられた)結果です。
3. MAX関数(ある列値全体から最大値を得る)
MAX関数は、指定した列の値全体から最大値のみを返します。
Shouninテーブルに登録されている商品の内、最も高い値段を取得してみます。
SELECT
MAX( price )
FROM
Shouhin;
MAX( price ) |
---|
4000 |
最も高い値段が取得できました。
4. MIN関数(ある列値全体から最小値を得る)
MIN関数は、指定した列の値全体から最小値のみを返します。
Shouninテーブルに登録されている商品の内、最も安い値段を取得してみます。
SELECT
MIN( price )
FROM
Shouhin;
MIN( price ) |
---|
100 |
最も安い値段が取得できました。
5. AVG関数(ある列値の平均値を得る)
AVG関数は、指定した列の値全体から平均値を計算して返します。
Shouninテーブルに登録されている商品の値段の平均値を取得してみます。
SELECT
AVG( price )
FROM
Shouhin;
AVG( price ) |
---|
641.5455 |
商品の値段の平均値が取得できました。
6. COUNT関数(データ件数を得る)
COUNT関数は、対象となっているデータの件数(行数)を返します。
Shouninテーブルに登録されている商品の件数を取得してみます。
SELECT
COUNT( * )
FROM
Shouhin;
COUNT( * ) |
---|
22 |
商品の件数を取得できました。
COUNT関数だけ、全ての列を意味する「*(アスタリスク)」を使っています。
priceやshouhin_idなどの列名を指定しても間違いではないのですが、後で登場する「NULL」というものが結果を狂わす場合があるのでCOUNTに限っては「*」を使用するのが無難です。
7. まとめ
集約関数について、その動作を確認しました。
SUM関数は、指定した列の値全体から合計値を計算して返します。
MAX関数は、指定した列の値全体から最大値のみを返します。
MIN関数は、指定した列の値全体から最小値のみを返します。
AVG関数は、指定した列の値全体から平均値を計算して返します。
COUNT関数は、対象となっているデータの件数(行数)を返します。
COUNT関数を使うときはアスタリスクを指定することが多いです。
次は、「条件に合った行を取得する(WHERE句)」です。