集約関数(SUM、MAX、MIN、AVG、COUNT)| プログラミングの砂場

プログラミング学習やタイピング練習に役立つツールを公開しているサイトです。

集約関数(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関数だけ、全ての列を意味する「*(アスタリスク)」を使っています。

COUNT( * )

priceやshouhin_idなどの列名を指定しても間違いではないのですが、後で登場する「NULL」というものが結果を狂わす場合があるのでCOUNTに限っては「*」を使用するのが無難です。

7. まとめ

集約関数について、その動作を確認しました。

SUM関数は、指定した列の値全体から合計値を計算して返します。

MAX関数は、指定した列の値全体から最大値のみを返します。

MIN関数は、指定した列の値全体から最小値のみを返します。

AVG関数は、指定した列の値全体から平均値を計算して返します。

COUNT関数は、対象となっているデータの件数(行数)を返します。

COUNT関数を使うときはアスタリスクを指定することが多いです。

SELECT COUNT( * ) FROM Shouhin;

次は、「条件に合った行を取得する(WHERE句)」です。
TOP