集計関数

本章では関数の基本的な考え方と集計関数の使い方について解説します。
本章の目標
  • 関数の基本を理解する
  • 集計関数の種類をおぼえる
  • AVG関数の使い方をおぼえる
  • SUM関数の使い方をおぼえる
  • COUNT関数の使い方をおぼえる
  • MAX関数の使い方をおぼえる
  • MIN関数の使い方をおぼえる
ページの先頭へ
ページの先頭へ

1.関数の基本

まずは、関数の基本的な考え方と書式を学習します。

1. 関数とは

SQLでは「関数」という仕組みを利用することができます。関数とは、あるまとまった処理を行い、その結果を返す道具のようなものです。
関数の中には、処理のための材料となる値を渡す必要があるものもあります。そのような材料のことを「引数」と呼びます。引数は関数によって1つだけのときもあれば、複数のときもあります。
また、関数から返ってくる実行結果を「戻り値」と呼びます。





2. 関数の書式

関数の書式は下記の通りです。

引数がない場合:関数()
引数が1つの場合:関数(引数1)
引数が2つの場合:関数(引数1,引数2)
引数が3つ以上の場合:関数(引数1,引数2, 引数3,・・・)

引数がない場合は、関数名のうしろに括弧をつけるだけです。
引数がある場合は、関数名のうち路の括弧の中に引数を記述します。
引数が複数の場合は、括弧内の引数を「,」(カンマ)で区切って並べます。

3. 関数の種類

本章で扱う集計関数には下記のようなものがあります。

関数名 機能
AVG 平均値を求める
SUM 合計を求める
COUNT 行の数を求める
MAX 最高値を求める
MIN 最低値を求める

関数は集計関数以外にも、文字列関数や日付関数などがありますが詳しくは後ほど解説します。
また、RDBMSによっては、独自の関数を実装しているケースが多々あります。
それらについては、各RDBMSのマニュアルを参照してください。

ページの先頭へ

2.集計関数の使い方

集計関数とは、複数の値の集まりに対して計算を実行し、1つの値を返す関数です。具体的な事例を見ながら理解を深めましょう。

1. AVG関数

AVG関数は、引数に指定した列の全ての行の値の平均値を算出し、戻り値として返します。
書式は下記の通りです。

SELECT AVG(列名) FROM テーブル名;

例えば「bookinfo」の価格の合計値を算出したいときは、

SELECT AVG(price) FROM bookinfo;

となります。つまりこの場合は、「price」列がAVG関数の引数、平均値が戻り値となるわけです。









2. SUM関数

SUM関数は、引数に指定した列の全ての行の値の合計値を算出し、戻り値として返します。
書式は下記の通りです。

SELECT SUM(列名) FROM テーブル名;

「bookinfo」の価格の合計値を算出したいときは、

SELECT SUM(price) FROM bookinfo;

となります。









3. COUNT関数

COUNT関数は、引数に指定した列の行数を求め、戻り値として返します。
書式は下記の通りです。

SELECT COUNT(列名) FROM テーブル名;

「bookinfo」のisbn列の行数をもとめる場合、

SELECT COUNT(isbn) FROM bookinfo;

となります。








また、COUNT関数は「*」(アスタリスク)を引数に指定することができます。

SELECT count(*) FROM bookinfo;










4. MAX関数

MAX関数は、引数に指定した列の中の最高値を戻り値として返します。
書式は下記の通りです。

SELECT MAX(列名) FROM テーブル名;

例えば「bookinfo」の価格の最高値を取得したい場合は、下記のようになります。

SELECT MAX(price) FROM bookinfo;










5. MIN関数

MIN関数は、MAX関数とは逆に、引数に指定した列の中の最低値を戻り値として返します。
書式は下記の通りです。

SELECT MIN(列名) FROM テーブル名;

例えば「bookinfo」の価格の最低値を習得したい場合は、下記のようになります。

SELECT MIN(price) FROM bookinfo;










上記の例のように、MIN関数では同一の最低値が複数あっても戻り値は一つ(最低値)です。これは、MAX関数も同様です。

ページの先頭へ

3.本章のまとめ

本章では関数の基本概念と集計関数について学習しました。
集計関数は、次章で解説する「GROUP BY」句と組み合わせて使われるケースが多いので、その考え方、使用方法をマスターしておいてください。

ページの先頭へ