このページは AI の支援を受けて英語から翻訳されています。内容が異なる場合は英語版が正となります。
MAX
列の入力または列のグループに基づいて最大値を返します。
関連項目:
[SELECT]
構文
/* aggregate function */
SELECT MAX(columnExpression) FROM <multipartIdentifier>
[ GROUP BY groupByColumn ];
/* scalar (multi-argument) function */
SELECT MAX(scalarExpression1, scalarExpressionN, ...) FROM <multipartIdentifier>;
引数
集約関数
columnExpression
オペランド(+、-、...)を含む列または式。
MAX関数は、列のデータ型に基づいて、指定された列の最大値を返します。たとえば、整数の列に対するMAX操作は、その列または列のグループの最大の整数を返します。一方、文字列の列または列のグループに対するMAX操作は、最大の ASCII 値を返します(一般に、辞書順で並べ替えたときの最初の値ですが、いくつかの違いがあります)。
groupByColumn
要約操作または集約操作の対象となる 1 つ以上の列。GROUP BY 句は、列のグループごとに 1 行を返します。
MAX関数はNULL値を無視します。
グループ内のすべての値が
NULLの場合、MAX関数はNULLを返します。
スカラー関数
scalarExpression
最大値を決定して返す対象となる列または式のリスト(2 つ以上)。
いずれかの引数が
NULLの場合、スカラーMAX関数はNULLを返します。
スカラー(複数引数)の
MAX関数は、照合関数を定義する引数を左から右へ検索し、その照合関数をすべての文字列比較に使用します。
スカラー
MAX関数のどの引数も照合関数を定義していない場合は、BINARY照合関数が使用されます。
引数が 1 つだけ指定された場合は、
MAX集約関数が呼び出されます。
戻り値
入力のデータ型(またはグループ)に基づいて最大値を返します。
例
列の最大値を返す
SELECT name, location, max(timeCreated)
FROM google.storage.buckets WHERE project = 'stackql';
列の値ごとに最大値を返す
SELECT name, location,
max(round(julianday('now')-julianday(timeCreated))) as age
FROM google.storage.buckets WHERE project = 'stackql'
GROUP BY location;
スカラー max 関数を使用して値のリストから最大値を返す
SELECT max(json_extract(disks, '$[0].diskSizeGb'),json_extract(disks, '$[1].diskSizeGb')) as largest_disk
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';
MAX をウィンドウ関数として使用してパーティション内の最大値を求める
-- Find the most recent issue in each state
SELECT
number,
title,
state,
created_at,
MAX(created_at) OVER (PARTITION BY state) as latest_in_state
FROM github.issues.issues
WHERE owner = 'stackql'
AND repo = 'stackql'
ORDER BY state, created_at DESC;
詳細については、https://www.sqlite.org/lang_aggfunc.html#max_agg または https://www.sqlite.org/lang_corefunc.html#max_scalar を参照してください。