La respuesta depende del tipo de datos real de la columna salary . El punto clave es que round() en Postgres no permite float s (solo numeric tipos son compatibles).
Si se trata de un numeric tipo de datos, primero puede round() , luego convertir a float :
round(avg(salary), 2)::float
Si se trata de un float columna, entonces necesitaría emitir el resultado de la función agregada antes de usar round() en él:
round(avg(salary)::numeric, 2)::float