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句)を参照してください。