SQLite | SQLite関数 | 列の最大値と最小値を求める(max関数、min関数)

max関数を使用すると、指定した列に保存されている最大値を取得できます。min関数を使用すると最小値を取得できます。ここでは、両方の関数の使い方について説明します。

max関数とmin関数の使い方

max関数は最大値を求めるために使用します。構文は次のとおりです。

max(列名)

指定した列に保存されている値のうち、最大の値を返します。GROUP BY句を使用した場合は、グループごとに最大値を返します。

min関数は最小値を求めるために使用します。構文は次のとおりです。

min(列名)

指定した列に保存されているNULL以外の値のうち、最小の値を返します。GROUP BY句を使用した場合は、グループごとに最小値を返します。

どちらの関数も、指定した列にNULLしかない場合はNULLを返します。

実際に最大値と最小値を求めてみましょう。まず、次のテーブルを作成します。

create table user (name text, point integer, gender text);
sqlite> create table user (name text, point integer, gender text);
sqlite> 

INSERT文を使用して次のデータを追加します。

insert into user values ('dekuma', 72, 'Man');
insert into user values ('kimkc', 94, 'Woman');
insert into user values ('araikuma', 58, 'Woman');
insert into user values ('happykuma', 82, 'Man');
sqlite> insert into user values ('dekuma', 72, 'Man');
sqlite> insert into user values ('kimkc', 94, 'Woman');
sqlite> insert into user values ('araikuma', 58, 'Woman');
sqlite> insert into user values ('happykuma', 82, 'Man');
sqlite> 

max関数とmin関数を使用して、point列の最大値と最小値を求めます。

select max(point), min(point) from user;
sqlite> select max(point), min(point) from user;
max(point)  min(point)
----------  ----------
94          58        
sqlite> 

列にある値の最大値と最小値を取得できました。

次に、gender列でグループ化し、グループごとの最大値と最小値を求めます。

select gender, max (point), min (point) from user group by gender;
sqlite> select gender, max (point), min (point) from user group by gender;
gender      max (point)  min (point)
----------  -----------  -----------
Man         82           72         
Woman       94           58         
sqlite> 

GROUP BY句を使用すると、グループごとに最大値と最小値を計算できます。詳しくは、データをグループ化して合計と平均を計算する(GROUP BY句、HAVING句)を参照してください。