## Syntax
```mermaid
%%{init: {
'theme': 'base',
'flowchart': { 'padding': '7', 'nodeSpacing': '20', 'rankSpacing': '20' },
'themeVariables': {
'fontSize': '11px',
'fontFamily': 'Arial'
}
}}%%
flowchart TD
avgAggregateFunction_start((START))
avgAggregateFunction_start --> avgAggregateFunction_0_0[AVG]:::quoted
avgAggregateFunction_0_0 --> avgAggregateFunction_0_1["("]:::quoted
avgAggregateFunction_0_1 --> avgAggregateFunction_0_3
avgAggregateFunction_0_1 --> avgAggregateFunction_0_2[DISTINCT]:::quoted
avgAggregateFunction_0_2 --> avgAggregateFunction_0_3[<a href="Invantive UniversalSQL/General/Identifiers" class="internal-link">identifier</a>]
avgAggregateFunction_0_3 --> avgAggregateFunction_0_4[")"]:::quoted
avgAggregateFunction_0_4 --> avgAggregateFunction_end((END))
```
## Purpose
Group function to find the average value from a group of numerical values. Occurrences of `null` are ignored. With `DISTINCT`, each unique value is averaged once, independent of how often it occurs.
## Examples
The following example retrieves the average credit limit across a customer base of five customers:
```sql
select avg(cus.credit_limit)
from csvtable
( passing 'Acme Industries#Manufacturing#12500#50000|Bergmann GmbH#Manufacturing#0#25000|Carlson Ltd#Wholesale#2500#10000|Dubois SA#Wholesale#7500#10000|Everest BV#Services##5000'
row delimiter '|'
column delimiter '#'
columns name varchar2 position next
, segment varchar2 position next
, balance number position next
, credit_limit number position next
) cus
-------------------
20000
```
The following example retrieves the average credit limit per customer segment, for instance to compare the credit risk appetite across segments:
```sql
select cus.segment
, avg(cus.credit_limit)
from csvtable
( passing 'Acme Industries#Manufacturing#12500#50000|Bergmann GmbH#Manufacturing#0#25000|Carlson Ltd#Wholesale#2500#10000|Dubois SA#Wholesale#7500#10000|Everest BV#Services##5000'
row delimiter '|'
column delimiter '#'
columns name varchar2 position next
, segment varchar2 position next
, balance number position next
, credit_limit number position next
) cus
group
by cus.segment
order
by cus.segment
-------------------
Manufacturing 37500
Services 5000
Wholesale 10000
```