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 à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 38
    Points : 22
    Points
    22
    Par défaut count avec group by
    Bonjour,

    Je souhaiterai savoir quelles sont les villes qui sont le plus de fois le départ d'ascensions de cols.
    Il y a des doublons car certains cols sont dans plusieurs listes (exemple : plus beaux cols des France et cols du Queyras).

    Nom : brian.png
Affichages : 125
Taille : 19,6 Ko
    Dans l'exemple ci-dessus, Briançon est ville départ de 11 segments (doublons inclus) mais en excluant les doublons, je devrai en compter que 9.

    Malgrés plusieurs essaies, je n'obtiens rien de très concluant.
    Soit j'ai les doublons, soit j'ai j'ai du tout...

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT `segment_ville`, nb_villes 
    FROM (SELECT id, segment_id, `segment_ville`, COUNT(id) AS nb_villes FROM liste_segments GROUP BY segment_id) as ttt 
    WHERE nb_villes > 2 
    ORDER BY nb_villes DESC
    Mon site si ça peut vous aider : http://cyclogrimpeurs.byethost18.com

    Merci d'avance !

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    hi,

    Si tu veux regrouper, il ne faut pas que tu mettes id dans ta requête. id étant unique, s'il est présent, tu ne regrouperas rien.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    hi,

    Si tu veux regrouper, il ne faut pas que tu mettes id dans ta requête. id étant unique, s'il est présent, tu ne regrouperas rien.
    Merci,

    J'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `segment_ville`, nb_villes FROM (SELECT segment_id, `segment_ville`, COUNT(segment_id) AS nb_villes FROM liste_segments GROUP BY segment_id) as ttt WHERE nb_villes > 2 ORDER BY nb_villes DESC
    mais j'ai toujours les doublons qui sont comptés :

    Nom : trie.png
Affichages : 71
Taille : 23,7 Ko

    Avez-vous une idée ?
    encore merci

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 779
    Points
    30 779
    Par défaut
    Bonjour,

    Si j'ai bien compris, tu veux compter compter combien de segments distincts sont attachés à chaque ville.
    Ce qui se traduirait par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT  segment_ville
        ,   COUNT(DISTINCT segment_id) AS nb_segments
    FROM    liste_segments
    GROUP BY segment_ville
    Si tu veux voir apparaitre les villes qui ont le plus de segments au début de la liste, il suffit de la trier en ajoutant ORDER BY nb_segments DESC à la fin de la requête.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. [MariaDB] SELECT count avec Group by et select dernière valeur not null
    Par tifou_oufti dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/10/2018, 17h35
  2. Réponses: 8
    Dernier message: 09/01/2012, 09h45
  3. COUNT avec group by
    Par Shandler dans le forum Langage SQL
    Réponses: 7
    Dernier message: 05/06/2009, 12h51
  4. row count avec group dans crosstab
    Par lapin_hobbit dans le forum Jasper
    Réponses: 0
    Dernier message: 16/07/2008, 09h28
  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, 14h27

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