# **SUM**

计算合计值。

SUM函数可用于数据统计查询时的合计值统计，也可以用于多个值之间的加法计算：

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

## 语法{#grammar}

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

- **paramN**：必需。在查询统计中传递一个参数表示统计合计值，传递多个值、单元格区块、数组对象时表示加法运算。

## 示例{#example}

**示例地址：** [SUM](https://demo.succbi.com/v5/bi/sum)。

用于合计统计，此时只能传递一个参数，常量或字段：

1. `SUM(1)` 求行数，等价于 `COUNT()`。
2. `SUM(model1.field1)` 统计字段field1的合计值，如果每行field1字段都为null，或者一行数据也没有，返回null。
3. `SUM(model1.field1+model1.field2)` 统计字段field1+field2的合计值，等价于 `SUM(model1.field1)+SUM(model1.field2)`。

用于加法运算，传递多个参数：

1. `SUM(-1,1.1,2.2,3.3,4.4)` 传入多个数值，返回 `10`。
2. `SUM(ARR(1,2,3))` 传入数组，返回数值`6`，传递数组时不支持在SQL中运算。
3. `SUM(ARR(1,2),2,ARR(2,3))` 传入数组和数值，等价于对数组和数值分别求和后相加，返回`10`。
4. `SUM(1,2,'3')` 数值和非数值型数字，会自动尝试将字符串转换为数字，返回数值`6`。
5. `SUM(1,2,"山"," ","!")` 忽略非数值字符串，返回`3`，传递非数值字符串时不支持在SQL中运算。
6. `SUM('a','山','    ','!')` 全为非数值字符串，返回`NULL`。
7. `SUM(1,2,NULL,3)` 自动忽略`NULL`，返回数值`6`。
8. `SUM(NULL,NULL,NULL)` 全为`NULL`，返回`NULL`。
9. `SUM(1+1,4-3,3*5,6/3)` 表达式，返回数值`20`。
10. `SUM(1,2,3)+SUM(1,2)` 四则运算，返回数值`9`。
11. `SUM(2,3,7)/SUM(1,2,3)` 四则运算，返回数值`2`。

用于浮动区域的合计值计算，传递单元格序列或浮动组件：

1. `SUM(A2)` A2是浮动区域内的单元格，计算浮动单元格`A2`数据的总和。报表分页时，计算当前页浮动单元格`A2`数据的总和。
2. `SUM(A2:A5)` 计算A2、A3、A4、A5这几个连续的单元格的合计值。
3. `SUM(A2:A5,B2:B5)` 计算2个连续单元格的合计值，等价于`SUM(A2:A5)+SUM(B2:B5)`。
4. `SUM(input1)` input1是浮动面板内部的一个数值输入框，计算所有浮动面板内的input1的总和。
