# Aggregates

> :::note
Aggregates are only applicable for use in metric expressions. You can not use aggregates for field expressions.
:::

:::note
Aggregates are only applicable for use in metric expressions. You can not use aggregates for field expressions.
:::

With **Aggregates** you can compute a single result value from a set of input values. An aggregate metric expression is defined by the aggregation type and the field used for the aggreagation.

| Element | Description |
| --- | --- |
| Aggregation type | The type of the function that is used to calculate the metric. For example, `SUM` is used to calculate a *Total* value, `AVERAGE` is used to calculate an *Average* value. |
| Field used for aggregation | The field that is used to calculate the metric. |

## Applying filters to an aggregation

You can add a filter to an aggregation to create a subset of the data that is used for the aggregation, by only selecting the relevant data. Filtering can reduce the amount of data that an aggregate function needs to process, which can speed up the calculation.

Follow these steps to apply filters to an aggregation.

1. Select the aggregation for which to you want to apply filters.
2. Select Filter icon in the logic block. The Filters panel is displayed.
3. Define the filters as desired**.**

The Filter icon indicates that filters are applied for the aggregation.

## `SUM of`

### Description

Returns the sum of all values for the selected field.

### Syntax

`SUM of <Field>`

### Supported values

Can be used for fields of number, duration, and currency data kinds.

### NULL handling

`NULL` values are ignored. If all field values are `NULL`, the result is `NULL`.

### Example

`SUM of Value`

## `AVERAGE of`

### Description

Returns the sum of all values for the selected field divided by the number of records in the table of the selected field.

### Syntax

`AVERAGE of <Field>`

### Supported values

Can be used for fields of number and duration data kinds.

### NULL handling

`NULL` values are ignored. If all field values are `NULL`, the result is `NULL`.

### Example

`AVERAGE of Discount captured`

## `COUNT of`

### Description

Returns the number of values for the selected field.

### Syntax

`COUNT of <Field>`

### Supported values

Can be used for fields of all data kinds.

### NULL handling

Counts all values, whether field value is `NULL` or not. If all the values are `NULL`, the result is 0.

### Example

`COUNT of Invoice ID`

## `MIN of`

### Description

Returns the smallest value for the selected field.

### Syntax

`MIN of <Field>`

### Supported values

Can be used for fields of number, duration, and currency data kinds.

### NULL handling

`NULL` values are ignored. If all field values are `NULL`, the result is `NULL`.

### Example

`MIN of Price`

## `MAX of`

### Description

Returns the largest value for the selected field.

### Syntax

`MAX of <Field>`

### Supported values

Can be used for fields of number, duration, and currency data kinds.

### NULL handling

`NULL` values are ignored. If all field values are `NULL`, the result is `NULL`.

### Example

`MAX of Amount`

## `MEDIAN of`

### Description

Returns the median of the values for the given field.

### Syntax

`MEDIAN of <Field>`

### Supported values

Can be used for fields of number, duration, and currency data kinds.

### NULL handling

`NULL` values are ignored. If all field values are `NULL`, the result is `NULL`.

### Example

`MEDIAN of Value`

## `PERCENTILE of`

### Description

Returns the specified percentile of the values for the given field, which is the value below which that percentage of the data falls.

### Syntax

`PERCENTILE of <Field> <percentile>`

### Supported values

Can be used for fields of number, duration, and currency data kinds.

### NULL handling

`NULL` values are ignored. If all field values are `NULL`, the result is `NULL`.

### Example

`PERCENTILE of Value 0.05`

:::note
The `PERCENTILE of` function uses an approximate version, which may result in a small deviation from the actual percentile.
:::
