翻译页面
本页面由 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
用于执行汇总或聚合操作的一列或多列。GROUP BY 子句为每个列分组返回一行。
MAX函数忽略NULL值。
如果分组中的所有值均为
NULL,则MAX函数返回NULL。
标量函数
scalarExpression
由列或表达式组成的列表(2 个或更多),从中确定并返回最大值。
如果任一参数为
NULL,则标量MAX函数返回NULL。
标量或多参数
MAX函数从左到右搜索其参数,查找定义了排序规则函数的参数,并将该排序规则函数用于所有字符串比较。
如果标量
MAX函数的参数均未定义排序规则函数,则使用BINARY排序规则函数。
如果只提供一个参数,则调用
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。