Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/02/2007, 10h25   #1
Invité de passage
 
Inscription : février 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 6
Points : 2
Points : 2
Par défaut Sous select et count(*)

Bonjour,
j'ai un petit souci avec la requete suivante :

select lib_agr_ctr as tranche , count (distinct contrat) as total,
(count (distinct contrat) / (select count (distinct contrat) from Analyse_ctr_coll group)) as Tx
from Analyse_ctr_coll group by code_agr_ctr, lib_agr_ctr order by code_agr_ctr

l'objectif de cette requete est de calculer un nombre de contrat par rapport a un critere donné sur l'ensemble de contrat.

Pb : la valeur Tx est toujours 0.
Pourtant, les termes retournent bien les bonnes valeurs et si on change l'operateur / par + - * , ca fonctionne.

voila.

j'epere avoir ete assez clair. D'avance merci.
JP
JPDOM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2007, 11h42   #2
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 738
Points : 2 738
Citation:
Envoyé par JPDOM
Bonjour,
j'ai un petit souci avec la requete suivante :

select lib_agr_ctr as tranche , count (distinct contrat) as total,
(count (distinct contrat) / (select count (distinct contrat) from Analyse_ctr_coll group)) as Tx
from Analyse_ctr_coll group by code_agr_ctr, lib_agr_ctr order by code_agr_ctr

l'objectif de cette requete est de calculer un nombre de contrat par rapport a un critere donné sur l'ensemble de contrat.

Pb : la valeur Tx est toujours 0.
Pourtant, les termes retournent bien les bonnes valeurs et si on change l'operateur / par + - * , ca fonctionne.

voila.

j'epere avoir ete assez clair. D'avance merci.
JP
cela semble indiquer que les calculs se font en entiers donc si le résultat de la division est < 1 (un pourcentage donc…) cela donne 0…
essayez en ajoutant des casts ::float…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 18h04   #3
Invité de passage
 
Inscription : février 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 6
Points : 2
Points : 2
Par défaut PArfait

Mieux vaut tard que jamais.merci, c'est effectivement un cast à réaliser
encore merci
JPDOM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h00.


 
 
 
 
Partenaires

Hébergement Web