Lists: | pgsql-fr-generale |
---|
From: | Gautier Di Folco <xgx26xdf(at)hotmail(dot)com> |
---|---|
To: | <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | FW: SELECT + COUNT |
Date: | 2008-12-18 11:28:31 |
Message-ID: | BAY127-W31631507DA1875EE8A257AD6F30@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-fr-generale |
Bonjour, Ca fait déjà plusieurs mois que je suis sur un projet et aujourd'hui, en voulant tester une requête du type :SELECT *, COUNT(*) FROM ma_table ORDER BY... Et là, Stupeur ça plante, obligé de faire un GROUP BY qui me met tout les COUNT a 1 Comment faire, en une requête, pour récupérer toutes les entrées (ordonnées, triées) et leur nombre totale... Par avance merci de votre aide
_________________________________________________________________
Téléphonez gratuitement à tous vos proches avec Windows Live Messenger ! Téléchargez-le maintenant !
http://www.windowslive.fr/messenger/1.asp
From: | Jean-Samuel Reynaud <reynaud(at)elma(dot)fr> |
---|---|
To: | Gautier Di Folco <xgx26xdf(at)hotmail(dot)com> |
Cc: | <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: FW: SELECT + COUNT |
Date: | 2008-12-18 11:43:57 |
Message-ID: | 20081218124357.554d87e3@reynaud-dell |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-fr-generale |
Bonjour,
Le comportement que tu constates est logique. La fonction count est une
fonction d'agrégation. Or sans agrégation (avec un group by sur toutes
les colonnes) le count ne fait plus que te compter la ligne agrégée à
savoir uniquement la ligne courante...
Un première réponse à ton besoin serait de faire un sous select à la
place de ton count(*):
select *,(select count(*) from ma_table) from ma_table order by ...
Comme ça, je ne vois pas d'autre solutions mais la liste est pleine de
ressource ;o)
Note qu'une gestion dans ton application serai bien meilleure (je pense)
Le Thu, 18 Dec 2008 11:28:31 +0000,
Gautier Di Folco <xgx26xdf(at)hotmail(dot)com> a écrit :
>
> Bonjour, Ca fait déjà plusieurs mois que je suis sur un projet et
> aujourd'hui, en voulant tester une requête du type :SELECT *,
> COUNT(*) FROM ma_table ORDER BY... Et là, Stupeur ça plante, obligé
> de faire un GROUP BY qui me met tout les COUNT a 1 Comment faire, en
> une requête, pour récupérer toutes les entrées (ordonnées, triées) et
> leur nombre totale... Par avance merci de votre aide
> _________________________________________________________________
> Téléphonez gratuitement à tous vos proches avec Windows Live
> Messenger ! Téléchargez-le maintenant !
> http://www.windowslive.fr/messenger/1.asp
From: | Gautier Di Folco <xgx26xdf(at)hotmail(dot)com> |
---|---|
To: | <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: FW: SELECT + COUNT |
Date: | 2008-12-18 12:27:56 |
Message-ID: | BAY127-W276E15CF61BA5D4981EAAAD6F30@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-fr-generale |
J'y ait pensé (pour la requête imbriqué)
Si non, le problème, c'est que je ne prend pas tout les résultats, par exemple, de 40 à 60, donc ça me donnera jusqu'à 20 résultats, voilà :/
Je vais faire donc cette imbrication
Merci à tous
PS : J'utilise PDO, pour le count...> Date: Thu, 18 Dec 2008 12:43:57 +0100> From: reynaud(at)elma(dot)fr> To: xgx26xdf(at)hotmail(dot)com> CC: pgsql-fr-generale(at)postgresql(dot)org> Subject: Re: [pgsql-fr-generale] FW: SELECT + COUNT> > Bonjour,> > Le comportement que tu constates est logique. La fonction count est une> fonction d'agrégation. Or sans agrégation (avec un group by sur toutes> les colonnes) le count ne fait plus que te compter la ligne agrégée à> savoir uniquement la ligne courante...> Un première réponse à ton besoin serait de faire un sous select à la> place de ton count(*):> select *,(select count(*) from ma_table) from ma_table order by ...> > Comme ça, je ne vois pas d'autre solutions mais la liste est pleine de> ressource ;o)> Note qu'une gestion dans ton application serai bien meilleure (je pense)> > Le Thu, 18 Dec 2008 11:28:31 +0000,> Gautier Di Folco <xgx26xdf(at)hotmail(dot)com> a écrit :> > > > > Bonjour, Ca fait déjà plusieurs mois que je suis sur un projet et> > aujourd'hui, en voulant tester une requête du type :SELECT *,> > COUNT(*) FROM ma_table ORDER BY... Et là, Stupeur ça plante, obligé> > de faire un GROUP BY qui me met tout les COUNT a 1 Comment faire, en> > une requête, pour récupérer toutes les entrées (ordonnées, triées) et> > leur nombre totale... Par avance merci de votre aide> > _________________________________________________________________> > Téléphonez gratuitement à tous vos proches avec Windows Live> > Messenger ! Téléchargez-le maintenant !> > http://www.windowslive.fr/messenger/1.asp> > -- > Sent via pgsql-fr-generale mailing list (pgsql-fr-generale(at)postgresql(dot)org)> To make changes to your subscription:> http://www.postgresql.org/mailpref/pgsql-fr-generale
_________________________________________________________________
Téléphonez gratuitement à tous vos proches avec Windows Live Messenger ! Téléchargez-le maintenant !
http://www.windowslive.fr/messenger/1.asp