# **AVG**

## **Function Description**

`AVG()` is a type of aggregate function that is used to calculate the arithmetic average of parameter columns.

## **Function Syntax**

```text
> AVG(expr)
```

## **Parameter definition**

| Parameters | Description |
| ---- | ---- |
| expr | Column name of any numeric type |

## **Return value**

Returns the arithmetic average of the column as `Double` type.
If the input parameter is empty, the `NaN` value is returned.

## **Example**

```text
> drop table if exists tbl1;
> create table tbl1 (col_1a tinyint, col_1b smallint, col_1c int, col_1d bigint, col_1e char(10) not null);
> insert into tbl1 values (0,1,1,7,"a");
> insert into tbl1 values (0,1,2,8,"b");
> insert into tbl1 values (0,1,3,9,"c");
> insert into tbl1 values (0,1,4,10,"D");
> insert into tbl1 values (0,1,5,11,"a");
> insert into tbl1 values (0,1,6,12,"c");

> select avg(col_1c) from tbl1;
+-----------------+
| avg(col_1c) |
+-----------------+
| 3.5 |
+-----------------+

> select sum(col_1d) as s1,avg(col_1d) as a3 from tbl1 group by col_1e order by s1 desc;
+------+------+
| s1 | a3 |
+------+------+
| 21 | 10.5 |
| 18 | 9 |
| 10 | 10 |
| 8 | 8 |
+------+------+

> select avg(col_1d) as a1 from tbl1 where col_1d < 13 group by col_1e order by a1;
+------+
| a1 |
+------+
| 8 |
| 9 |
| 10 |
| 10.5 |
+------+
```
