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 :

COUNT avec group by


Sujet :

Langage SQL

  1. #1
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut COUNT avec group by
    Bonjour,

    J'ai cette requete qui me permet d'afficher des element vis a vis d'un recherche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT
    personnes.nom,personnes.prenom
    FROM personnes 
    LEFT JOIN personnes_liaison ON personnes_liaison.ID_personne=personnes.ID
    LEFT JOIN entites ON entites.ID=personnes_liaison.ID_entite
    LEFT JOIN services ON services.ID=personnes_liaison.ID_service
    LEFT JOIN fonctions ON fonctions.ID=personnes_liaison.ID_fonction
    LEFT JOIN adresses_liaison ON adresses_liaison.ID_personne=personnes.ID 
    LEFT JOIN adresses ON adresses.ID=adresses_liaison.ID_adresse
    WHERE
    (personnes.nom LIKE "%az%")
    GROUP BY personnes.nom, personnes.prenom, personnes.tel_standard, personnes.tel_perso, personnes.tel_mob, personnes.fax, personnes.email, personnes.url ORDER BY personnes.nom ASC
    Mais voila j'ai besoin de connaitre le nombre d'enregistrement de cette requete et donc j'ai fais avec count mais voila il me renvoie pas le nombre voici ma requete ci-desous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT 
    COUNT(*) AS nombre 
    FROM personnes 
    LEFT JOIN personnes_liaison ON personnes_liaison.ID_personne=personnes.ID 
    LEFT JOIN entites ON entites.ID=personnes_liaison.ID_entite 
    LEFT JOIN services ON services.ID=personnes_liaison.ID_service 
    LEFT JOIN fonctions ON fonctions.ID=personnes_liaison.ID_fonction 
    LEFT JOIN adresses_liaison ON adresses_liaison.ID_personne=personnes.ID 
    LEFT JOIN adresses ON adresses.ID=adresses_liaison.ID_adresse 
    WHERE (personnes.nom LIKE "%az%") 
    GROUP BY personnes.nom, personnes.prenom, personnes.tel_standard, personnes.tel_perso, personnes.tel_mob, personnes.fax, personnes.email, personnes.url
    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Pas très très joli !
    Faites en sorte que les éléments de votre group by correspondent avec les éléments de votre select, sinon vous ne vous en sortirez jamais.

  3. #3
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut
    Vous parler pour la 2éme requete je pense ?

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par Shandler Voir le message
    Vous parler pour la 2éme requete je pense ?
    Oui, pour la première c'est pire, un group by sans aggrégat !

  5. #5
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut
    Je voie pas ce que vous voulez dire par aggrégat mais pour la premier je les edulcoré pour eviter que ca devient ilisible car je pense que mon pb ne vient pas de la mais du group by et du count ensemble mais je voie pas comment passer outre ce probleme

    Merci a vous.

  6. #6
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour,

    Ce que veut dire Waldar par aggrégat, c'est une fonction de regroupement tel COUNT(), MAX(), MIN()....


    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  7. #7
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT count(*) FROM (
    SELECT
    personnes.nom,personnes.prenom
    FROM personnes 
    LEFT JOIN personnes_liaison ON personnes_liaison.ID_personne=personnes.ID
    LEFT JOIN entites ON entites.ID=personnes_liaison.ID_entite
    LEFT JOIN services ON services.ID=personnes_liaison.ID_service
    LEFT JOIN fonctions ON fonctions.ID=personnes_liaison.ID_fonction
    LEFT JOIN adresses_liaison ON adresses_liaison.ID_personne=personnes.ID 
    LEFT JOIN adresses ON adresses.ID=adresses_liaison.ID_adresse
    WHERE
    (personnes.nom LIKE "%az%")
    GROUP BY personnes.nom, personnes.prenom, personnes.tel_standard, personnes.tel_perso, personnes.tel_mob, personnes.fax, personnes.email, personnes.url ORDER BY personnes.nom ASC ) as foo

  8. #8
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut
    Merci say ca marche nickel.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/01/2012, 10h45
  2. row count avec group dans crosstab
    Par lapin_hobbit dans le forum Jasper
    Réponses: 0
    Dernier message: 16/07/2008, 10h28
  3. max(count(*)) avec un GROUP BY (suite)
    Par awalter1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/09/2007, 16h07
  4. max(count(*)) avec un GROUP BY
    Par awalter1 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/09/2007, 12h04
  5. Requête récalcitrante avec un tri par COUNT sans GROUP BY
    Par Ancalagon77 dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/10/2006, 15h27

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