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

Langage SQL Discussion :

limiter le résultat retourné par le count


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 9
    Points : 10
    Points
    10
    Par défaut limiter le résultat retourné par le count
    bonjour voilà
    j'ai la requête suivante
    select distinct ipsource, ipdest,ip_ins,nom_ins,count(*) compteur from
    datamessage
    where
    date_message >= TO_DATE('02/08/2003 10:15:17', 'DD/MM/YYYY HH24:MI:SS')
    and date_message <=TO_DATE('02/08/2003 13:17:17', 'DD/MM/YYYY HH24:MI:SS')

    group by ipsource,ipdest,ip_ins,nom_ins order by compteur desc

    le résultat que j'obtient est énorme et je veux ajouter une condition sur le count
    j'ai ajouté a la clause where ceci :

    and compteur > 100 histoire de limiter les enregistrement dans les occurences sont supérieur a 100

    mais ca ne marche pas il me dit colonne invalide

    quelqu'un a une idée ? merci

  2. #2
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    tu puet peut être preciser une limite dans la clause having qui limitera les enregistrements rapatrié du genre :
    HAVING Count(*) >100

    mais je n'ai pas bien compris ce que tu essayais de limiter...

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    en fait je recois par exemple une adresse ip qui se répète 2000 fois et une autre qui se répète 500 et d'autre dont l'occurence se limite a 1

    donc je veux que l'enregistrement retourné par la requète que ne contienne que les adresses IP qui se répétent plus de 100 fois

    j'espère que c clair

  4. #4
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    dans ce cas, tu devrais utiliser HAVING qui feras ce que tu dit, il te suffit de specifier que le count doit être superieur à 100 par
    HAVING count(*)>100

    ça devrait faire ce que tu dis

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Le problème est de savoir si compteur est bien une colonne de ta table. Si c'est le cas, alors tu n'as pas besoin de count(*) compteur, mais de compteur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select distinct ipsource, ipdest,ip_ins,nom_ins,compteur from 
    datamessage 
    where 
    date_message >= TO_DATE('02/08/2003 10:15:17', 'DD/MM/YYYY HH24:MI:SS') 
    and date_message <=TO_DATE('02/08/2003 13:17:17', 'DD/MM/YYYY HH24:MI:SS') 
    and compteur>100
    group by ipsource,ipdest,ip_ins,nom_ins
    order by compteur desc

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Le problème est de savoir si compteur est bien une colonne de ta table. Si c'est le cas, alors tu n'as pas besoin de count(*) compteur, mais de compteur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select distinct ipsource, ipdest,ip_ins,nom_ins,compteur from 
    datamessage 
    where 
    date_message >= TO_DATE('02/08/2003 10:15:17', 'DD/MM/YYYY HH24:MI:SS') 
    and date_message <=TO_DATE('02/08/2003 13:17:17', 'DD/MM/YYYY HH24:MI:SS') 
    and compteur>100
    group by ipsource,ipdest,ip_ins,nom_ins
    order by compteur desc

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Le problème est de savoir si compteur est bien une colonne de ta table. Si c'est le cas, alors tu n'as pas besoin de count(*) compteur, mais de compteur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select distinct ipsource, ipdest,ip_ins,nom_ins,compteur from 
    datamessage 
    where 
    date_message >= TO_DATE('02/08/2003 10:15:17', 'DD/MM/YYYY HH24:MI:SS') 
    and date_message <=TO_DATE('02/08/2003 13:17:17', 'DD/MM/YYYY HH24:MI:SS') 
    and compteur>100
    group by ipsource,ipdest,ip_ins,nom_ins
    order by compteur desc

  8. #8
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    c sur, moi j'avais compris que c'etait un alias : count(*) As compteur
    mais bon, juste une dernière suggestion,tu peux utiliser BETWEEN pour uneperiode entre tes dates plutot que date> et date <
    voilà

  9. #9
    Membre à l'essai
    Inscrit en
    Décembre 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    compteur c bien un alias et non une colonne
    j'ai essayé le having ca marche
    merci

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

Discussions similaires

  1. [MySQL] Type du résultat retourné par MySQL
    Par colodoc dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/10/2008, 02h37
  2. Réponses: 2
    Dernier message: 11/04/2008, 23h23
  3. Valeur retournée par un count
    Par Nimothenicefish dans le forum WinDev
    Réponses: 1
    Dernier message: 05/02/2008, 11h57
  4. Problème de résultat retourné par une procédure stockée
    Par Access Newbie dans le forum Access
    Réponses: 23
    Dernier message: 17/08/2006, 11h42
  5. PSQLException "Aucun résultat retourné par la requête&q
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/09/2005, 20h55

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