メインコンテンツまでスキップ
翻訳ページ

このページは 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 を参照してください。