## 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 ```