IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Sous select et count(*)


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 7
    Points
    7
    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

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 957
    Points : 4 386
    Points
    4 386
    Par défaut
    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…

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 7
    Points
    7
    Par défaut PArfait
    Mieux vaut tard que jamais.merci, c'est effectivement un cast à réaliser
    encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Div passant sous SELECT
    Par masseur dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 06/03/2008, 11h57
  2. Réponses: 2
    Dernier message: 19/06/2006, 11h47
  3. [C#][.net2] Sous select et jointure ne passe pas
    Par VincenzoR dans le forum Windows Forms
    Réponses: 25
    Dernier message: 19/01/2006, 11h48
  4. [firebird] sous select dans un select
    Par gdido dans le forum SQL
    Réponses: 2
    Dernier message: 14/05/2004, 09h57
  5. sous-select
    Par necronick dans le forum Requêtes
    Réponses: 8
    Dernier message: 10/05/2004, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo