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

Requêtes MySQL Discussion :

Invalid use of group function


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut Invalid use of group function
    Bonjour,
    J'ai ceci qui roule très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    SELECT d.noms as noms, s.genre as sexe, 
    COUNT(dl.id_legis) as total_legis, GROUP_CONCAT(CAST(dl.id_legis AS CHAR) ORDER BY dl.id_legis SEPARATOR ", " ) AS liste_legis, 
    COUNT(DISTINCT pp.id_parti) as total_parti, GROUP_CONCAT(DISTINCT pp.sigle ORDER BY pp.id_parti SEPARATOR ", " ) AS liste_parti,
    COUNT(DISTINCT dl.id_dpt) as total_dpt, GROUP_CONCAT(DISTINCT d2.libelledpt ORDER BY d2.libelledpt SEPARATOR ", " ) AS liste_dpt,
    r.libelleregion as region
    FROM deputes AS d
    LEFT JOIN sexes AS s ON d.sexe = s.id_sexe
    LEFT JOIN depute_legislatures AS dl ON dl.id_depute = d.id_depute
    LEFT JOIN partis_politiques AS pp ON dl.id_parti = pp.id_parti
    LEFT JOIN departements AS d2 ON d2.iddpt = dl.id_dpt
    LEFT JOIN regions AS r ON r.idregion = d2.idregion
    WHERE d.sexe = 1
    GROUP BY dl.id_depute 
    HAVING total_legis > 1
    ORDER BY total_legis DESC, d.noms
    Ci haut est la requête complète mais c'est à cette parti qu'est le problème
    GROUP_CONCAT(DISTINCT pp.sigle ORDER BY pp.id_parti SEPARATOR ", " ) AS liste_parti
    Quand j'ajoute COUNT(dl.id_legis) dans le GROUP_CONCAT de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GROUP_CONCAT(COUNT(dl.id_legis), CAST(dl.id_legis AS CHAR) ORDER BY dl.id_legis SEPARATOR ", " ) AS liste_legis
    J'ai cette erreur :
    Invalid use of group function
    Qu'est-ce qui ne tient pas?

    Merci d'avance...

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Tu n'as pas le droit d'imbriquer des fonctions d'agrégation... autrement dit, mettre un COUNT dans un GROUP_CONCAT est interdit (et aberrant).

    Est-ce que tu ne veux pas tout simplement faire ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CONCAT(COUNT(dl.id_legis), 
      ', ', 
      GROUP_CONCAT(CAST(dl.id_legis AS CHAR) ORDER BY dl.id_legis SEPARATOR ', ' )
    ) AS liste_legis
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

Discussions similaires

  1. #1111 - Invalid use of group function
    Par okoweb dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/04/2011, 18h24
  2. Cannot use an aggregate function in a GROUP BY clause
    Par MICLANG dans le forum Firebird
    Réponses: 4
    Dernier message: 16/08/2010, 17h29
  3. invalid use of group function
    Par Chasseur d'étoiles dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/09/2008, 21h07
  4. UPDATE et AVG(): invalid use of group function
    Par ctobini dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/02/2008, 12h12
  5. invalid use of group function
    Par sirbaldur dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/05/2006, 14h38

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