Vous n'êtes pas identifié(e).

#1 04/01/2013 20:01:23

drouault.p
Membre

Utiliser un resultat d'agregat dans une clause where

Bonjour

Je cherche à utiliser un resultat d'aggregat dans une clause where mais postgres me renvoit une erreur m'indiquant que le champs n'existe pas.

Par exemple :

select count(id) as nb from matable where nb > 1;

ne marche pas.

Si je fais :

select count(id) as nb from matable where count(id) > 1;

Postgres m'indique que je ne peux utiliser d'aggregat dans une clause where.

Auriez vous une solution (à part passer par une fonction) ?

Merci d'avance

Drouault.P

Hors ligne

#2 04/01/2013 21:42:57

rjuju
Administrateur

Re : Utiliser un resultat d'agregat dans une clause where

Bonjour,

il faut utiliser un group by


SELECT id,count(*) as nb FROM matable HAVING count(*) > 1;

Hors ligne

#3 07/01/2013 00:38:18

drouault.p
Membre

Re : Utiliser un resultat d'agregat dans une clause where

Bonsoir

Oui j'avais oublié que je faisais un group by sur les champs. Et avec Having, ça marche parfaitement, merci.

Hors ligne

Pied de page des forums