トップDML集計関数 ≫ 指定列の最大値や最小値を求める

指定列の最大値や最小値を求める

指定列の最大値を求めるにはMAX関数を,最小値を求めるにはMIN関数をそれぞれ使用します.

MAXとMIN

MAX関数の基本構文は以下のようになります.(MIN関数も同様です)

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

GROUP BY句を使用することで,同じ値を持つデータごとにグループ化して最大値と最小値を求めることができます.

SELECT 集計キー1, 集計キー2, ..., MAX(列名1), MIN(列名2), ...
FROM テーブル名
GROUP BY 集計キー1, 集計キー2, ...

注意.
SELECT句には,GROUP BY句で指定した列と集計関数のみを指定することができます.

SQL サンプル

例として以下のテーブル(従業員マスタ)から従業員の年齢の最大と最小を求めます.

従業員マスタ

従業員コード従業員名年齢種別
A0001チャーリー・ブラウン15人間
A0002ペパーミント・パティ15人間
A0003ルシール・ヴァン・ぺルト16人間
B0001スヌーピー4
C0001ウッドストック3

全レコードを対象にして最大と最小を求める

従業員マスタの全レコードを対象にして年齢の最大と最小を求める場合は以下のようにSQLを書きます. なお以下のサンプルは分かりやすいようにAS句を使用して列に別名をつけています.

SQL

SELECT MAX(年齢) AS 年齢の最大, MIN(年齢) AS 年齢の最小
FROM 従業員マスタ

結果

年齢の最大年齢の最小
163

グループごとに最大と最小を求める

種別ごとに年齢の最大と最小を求める場合は以下のようにSQLを書きます.

SQL

SELECT MAX(年齢) AS 年齢の最大, MIN(年齢) AS 年齢の最小, 種別
FROM 従業員マスタ
GROUP BY 種別

結果

年齢の最大年齢の最小種別
1615人間
44
33

注意.
サンプルで使用するテーブルは説明のため正規化を行っていなかったり,一般的でない列が含まれている場合があります.ご容赦ください.