Syntax
AVG([ DISTINCT ALL ] expr) OVER(analytic_clause)
Purpose
You can call this function to return the average value in a specified group, with null values ignored. The DISTINCT option can be used to return the average of distinct values of expr. If no matching row is found, AVG() returns NULL.
Examples
obclient> CREATE TABLE EXPLOYEES(LAST_NAME CHAR(10), SALARY DECIMAL, JOB_ID CHAR(32));
Query OK, 0 rows affected (0.08 sec)
obclient> INSERT INTO EXPLOYEES VALUES('JIM', 2000, 'CLEANER');
Query OK, 1 row affected (0.11 sec)
obclient> INSERT INTO EXPLOYEES VALUES('MIKE', 12000, 'ENGINEERING');
Query OK, 1 row affected (0.00 sec)
obclient> INSERT INTO EXPLOYEES VALUES('LILY', 13000, 'ENGINEERING');
Query OK, 1 row affected (0.00 sec)
obclient> INSERT INTO EXPLOYEES VALUES('TOM', 11000, 'ENGINEERING');
Query OK, 1 row affected (0.01 sec)
obclient> SELECT LAST_NAME, AVG(SALARY) OVER(PARTITION BY JOB_ID) AVG_S FROM EXPLOYEES;
+-----------+------------+
LAST_NAME AVG_S
+-----------+------------+
JIM 2000.0000
MIKE 12000.0000
LILY 12000.0000
TOM 12000.0000
+-----------+------------+
4 rows in set (0.01 sec)