# **MAX**

计算最大值。

MAX函数可用于数据统计查询时的最大值统计，也可以用于多个值之间的求最大值计算：

- 聚合统计：对一个字段或表达式进行聚合统计，此时只能传递一个参数，通常是传递要统计最大值的字段，等同于数据库的MAX函数。
- 四则运算：对多个值进行求最大值计算，也可以合计浮动数据和数组，此时MAX就不是一个聚合统计函数了。

## 语法{#grammar}

MAX(**param1**, **param2**, **...**, **paramN**)

- **paramN**：必需。在查询统计中判断该参数内最大值，传递多个值、单元格区块、数组对象时表示计算多个区域内的最大值。

**示例地址：** [MAX](https://demo.succbi.com/v5/bi/max)

## 示例{#example}

用于最大值统计，传入一个参数、字段或表达式：

1. `MAX(model1.field1)` 计算字段field1的最大值，如果每行field1字段都为null，或者一行数据也没有，返回null。

用于找到数组最大值，传入多个值或数组：

2. `MAX(1.2,2.3,3.4)` 数值，返回数值`3.4`。
3. `MAX(ARR(1,2,3))` 数组，返回数值`3`。
4. `MAX("a","b","bA","bB","A")` 字母，返回字符串`bB`，按Unicode编码逐字符比较。
5. `MAX(ARR(1,2),99,ARR(11,13,14))` 数值和数组，返回数值`99`。
6. `MAX(12,23,'123')` 数值和非数值型数字，返回数值`123`，`'123'`转成数值计算。
7. `MAX(1+1,4-3,3*5,6/3)` 表达式，返回数值`15`。
8. `MAX(1,2,NULL,3)` 含有`NULL`，返回数值`3`，忽略`NULL`。
9. `MAX(NULL,NULL,NULL)` 全为`NULL`，返回`NULL`。

用于找到浮动区域的最大值，传递单元格序列或浮动组件：

10. `MAX(A2)`  A2是浮动区域内的单元格，计算浮动单元格`A2`数据的最大值。报表分页时，计算当前页浮动单元格`A2`数据的最大值。
11. `MAX(A2:A5)` 计算A2、A3、A4、A5这几个连续的单元格最大值。
12. `MAX(A2:A5,B2:B5)` 计算2个连续单元格的最大值。
13. `MAX(input1)` input1是浮动面板内部的一个数值输入框，计算所有浮动面板内的input1的最大值。

[//]: # "在判断最大值时，可以对多种类型进行判断，不同类型的判断会根据 unicode 码的先后进行判断。如'A'比'a'大。"
