La función AVG en PostgreSQL devuelve el promedio de un conjunto de valores (media aritmética). La función AVG está englobada en las denominadas funciones de agregación.
Sintaxis
La sintaxis de la función AVG es la siguiente:
La función AVG no es exclusiva de la cláusula SELECT. También es posible utilizarla en las cláusulas WHERE y HAVING.
Ejemplos
Usaremos la siguiente tabla llamada empleados para realizar los ejemplos (al final de la página esta disponible el script para crearla)

Ejemplo básico
En el siguiente ejemplo obtenemos el mayor sueldo de la tabla empleados:

Ejemplo agrupando
En este otro ejemplo obtenemos la media por cada puesto. Observa como necesitamos establecer una agrupación usando GROUP BY:

Recuerda que si en la cláusula SELECT escribes mas campos que no usen la función de agregación, debes incluirlos en el GROUP BY.
Recuerda que en un consulta siempre se evalúa primero la cláusula FROM seguido del WHERE y por ultimo la cláusula SELECT. Más información aquí.
Ejemplo con HAVING
En este otro ejemplo mostramos la media del sueldo agrupado por nombre, pero utilizamos la cláusula HAVING para indicar que la media del sueldo debe ser mayor de 60000:

La cláusula HAVING actúa como un WHERE, con la diferencia que debe utilizar funciones de agregación.
Ejemplo con distinct
Se puede utilizar la opción distinct para hacer la media de los valores distintos:

Ejemplo completo
Copia y pega el siguiente código en tu consola de PostgreSQL y realiza paso a paso leyendo los comentarios: