PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Agrégats non autorisés dans la clause WHERE dans l'erreur postgreSQL

Vous pouvez le faire avec une fonction de fenêtre dans une sous-requête :

select name, add, mobile
from (select a.name, a.add, a.mobile, total,
             avg(ac.total) over (partition by a.name, a.add, a.mobile) as avgtotal, a.total
      from user a INNER JOIN
           user_info aac
           ON aac.userid= a.userid INNER JOIN
           info ac 
           ON aac.infoid= ac.infoid
     ) t
WHERE total < 8 * avgtotal
GROUP BY name, add, mobile;