# **AVG**

计算平均值。

AVG函数可用于数据统计查询时的平均值统计，也可以用于多个值之间的求平均值计算：

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

## 语法{#grammar}

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

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

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

## 示例{#example}

用于统计平均值，此时只能传递一个参数，字段或表达式：

1. `AVG(model1.field1)` 统计字段field1的平均值，如果每行field1字段都为null，或者一行数据也没有，返回null。

用于求平均值运算，传递多个参数：

2. `AVG(1,2,3)` 正整数，返回数值`2`。
3. `AVG(ARR(1,2,3))` 常量数组，返回数值`2`。
4. `AVG(ARR(1,2),0,ARR(4,5))` 数值和数组，返回数值`2.4`。
5. `AVG(1,2,'3')` 数值和非数值型数字，返回数值`2`，字符串`'3'`转为数值计算。
6. `AVG(-1,-2,-3)` 负数，返回数值`-2`。
7. `AVG(1.2,2.3,3.4)` 小数，返回数值`2.3`。
8. `AVG(1+1,4-3,3*5,6/3)` 表达式，返回数值`5`。
9. `AVG(1,2,'')` 含空字符串，返回数值`1.5`，忽略该空字符串。
10. `AVG(1,2,NULL)` 含`NULL`，返回数值`1.5`，忽略`NULL`参数。
11. `AVG(1,2,3)+AVG(1,2)` 四则运算，返回数值`3.5`。
12. `AVG(2,3,7)/AVG(1,2,3)` 四则运算，返回数值`2`。

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

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