max

语法

max(X, [Y])

详情

返回输入数据中的最大值。

支持以下两种调用方式:

  • 仅输入一个参数 X,用于计算 X 的最大值。比较时忽略 NULL 值。

  • 输入两个参数,用于按元素比较两个数据对象,返回较大值。比较时不忽略 NULL 值。

请注意,从 2.00.8 版本开始,max 处理时间类型数据的行为(之前版本统一转换为长整型)修改为:

  • XY 是时间类型标量,系统会将时间类型统一为两者中较高精度对应的类型,再比较大小。

  • XY 是向量、矩阵或表,则必须具有相同的时间类型。

参数

X 可以是标量、向量、矩阵或表。

Y 为可选参数,可以是标量或者是和 X 长度相同的向量或者矩阵。

返回值

单参数调用:

  • X 是向量,返回一个标量。

  • X 为矩阵,返回一个向量。

  • X 为表,返回一个表。

双参数调用:

  • Y 是标量,返回与 X 维度相同的对象,每个元素为 max(X[i], Y)

  • YX 类型和长度一致,返回对应位置较大值组成的对象。

例子

max(1 2 3);
// output: 3

max(7.8 9 5.4);
// output: 9

(5 8 2 7).max();
// output: 8

m=matrix(1 2 3, 4 5 6);
m;
#0 #1
1 4
2 5
3 6
max(m);
// output: [3,6]
max(1 2 3, 2)
// output: 2 2 3

n = matrix(1 1 1, 5 5 5)
n;
#0 #1
1 5
1 5
1 5
max(m, n);
#0 #1
1 5
2 5
3 6

max 可以搭配 select 使用, 返回某列的最大值:

t = table(`abb`aac`aaa as sym, 1.8 2.3 3.7 as price);
select max price from t;
max_price
3.7

max 可以应用于字符串,返回字典序最大的字符串:

select max sym from t;
max_sym
abb

相关函数:mmax