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 :

condition sur count(*) dans mysql


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut condition sur count(*) dans mysql
    voilà j'ai une requete de cette forme

    SELECT `INFO_SRC` , `INFO_DEST` , count(*) AS nb
    FROM `LP_LINK`
    GROUP BY `INFO_SRC` , `INFO_DEST`

    qui fonctionne

    mais maintenant, je voudrais que cette requete ne renvoie que les resultats où le COUNT donc nb est >= 2

    j'ai essayé

    SELECT `INFO_SRC` , `INFO_DEST` , count( ID ) AS nb
    FROM `LP_LINK`
    GROUP BY `INFO_SRC` , `INFO_DEST` where 'nb'>=2

    mais cela ne marche pas...

    merci pour votre aide

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 890
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 890
    Points : 53 124
    Points
    53 124
    Billets dans le blog
    6
    Par défaut
    WHERE ne permet de filtrer que sur des données contenues dans la table (directement ou à l'aide d'expression, fonctions...). Or nb ne figure dans aucune table puisque c'est un résultat.

    Pour filtrer un résultat il faut utiliser un fitre HAVING !

    Au passage l'utilisation des apostrophes autour des noms d'objet est une hérésie et ne correspond à rien au niveau du langage SQL !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT INFO_SRC , INFO_DEST , count( ID ) AS nb
    FROM LP_LINK
    GROUP BY INFO_SRC , INFO_DEST
    HAVING nb >=2
    A lire sur le sujet : http://sqlpro.developpez.com/cours/sqlaz/ensembles/#L2

    A +

    A +

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut merci pour l'info
    MERCI, je prends tout en note

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Autre question...
    Maintenant que mon select marche avec Having... je voudrais supprimer tous les enregistrements corespondants...

    j'ai biensur essayé il est vrai sans grande conviction

    delete count(*) AS nb
    FROM LP_LINK
    WHERE INFO_LINK_CLASS = 'StoryTopic'
    GROUP BY INFO_SRC, INFO_DEST
    HAVING nb >=2

    mais là encore... impossible...

  5. #5
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Si ton moteur autorise cette syntaxe (Row Value Constructor)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE FROM LP_LINK
    WHERE (INFO_SRC , INFO_DEST ) IN (SELECT INFO_SRC , INFO_DEST 
                                      FROM LP_LINK 
                                      GROUP BY INFO_SRC , INFO_DEST 
                                      HAVING nb >=2)

Discussions similaires

  1. [AC-2007] Condition sur focus dans une macro
    Par damsmut dans le forum IHM
    Réponses: 6
    Dernier message: 17/12/2009, 15h00
  2. Critère sur Count dans une Requête Croisée
    Par Nana35 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/12/2008, 11h46
  3. condition sur date dans table
    Par morgane32 dans le forum Modélisation
    Réponses: 4
    Dernier message: 15/10/2008, 10h51
  4. [MySQL] memory limit sur insertion dans MySQL
    Par bru2336 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/11/2007, 08h32
  5. Problème: condition sur formulaire dans requête
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2005, 23h27

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