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 :

plusieurs count(*) dans une table


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 64
    Points : 39
    Points
    39
    Par défaut plusieurs count(*) dans une table
    Voilà j'ai une table listant des relations entre des villes. Il y a des relations en train et des relations en avion chacune étant codée selon un chiffre.
    Je voudrais produire une table m'indiquant pour chaque ville combien de relations en train et combien en avion, et allez, la maison ne reculant devant aucun sacrifice, combien de relations au total.

    J'arrive classiquement à compter le total des relations, le total des relations en train, le total des relations en avion, mais à chaque fois ce sont des tables séparées; moi ce que je voudrais ce sont ces valeurs cote à cote, bien gentiment pour sortir ensuite des camemberts avec Mapinfo mais ça c'est une autre histoire.
    Voilà où j'en suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT count( *  ) , `dNomConurbOri` , `dType`
    FROM `rt_air_rail_5_23_best_reciproques`
    WHERE `dType` =101
    GROUP BY `dConurbOri`
    Ce qui me donne le résultat suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    count(*) 	dNomConurbOri 	dType
    1 	   Vilnius 	   101
    1 	   Kaunas 	   101
    3 	   Katowice 	   101
    2 	   Krakow 	   101
    ...

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Pour bien tout comprendre, comment sait-on qu'une relation est par train et une autre par avion ?
    C'est le dType qui change ? 101 équivaut à avion ou train ? Quel est le dType de la seconde relation ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    Bonjour cher ced au plaisir de te recroiser,
    je sors un extrait de ma table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Minsk  	Riga 	  202
    Kiev 	Moskva 	  202
    Kiev 	Wien 	  202
    Vilnius 	Kaunas 	  101
    Vilnius 	Riga 	  202
    Vilnius 	Tallinn 	  202
    Vilnius 	Warszawa 	  202
    Vilnius 	Stockholm 	  202
    Kaunas 	Vilnius 	  101
    Kaunas 	Riga 	  202
    je voudrais une table disant:
    Ville, nbRelationsFerroviaires (101), nbRelationsAir(202)
    Alors que ce que j'arrive à faire c'est seulement deux tables disant:
    Ville, nbRelationsFerroviaires (101)
    et
    Ville, nbRelationsAir(202)

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    OK, essaie la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT `dNomConurbOri` AS Ville
    , SUM(CASE WHEN `dType` = 101 THEN 1 ELSE 0 END) AS nbRelationsFerroviaires
    , SUM(CASE WHEN `dType` = 202 THEN 1 ELSE 0 END) AS nbRelationsAir
    , COUNT(*) as nbRelationsTotal
    FROM `rt_air_rail_5_23_best_reciproques`
    GROUP BY `dConurbOri`
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 64
    Points : 39
    Points
    39
    Par défaut
    Un grand merci ced,
    c'est exactement ce dont j'ai besoin, et en plus ça marche direct.
    superbe, mais je n'avais jamais vu ce genre d'instructions auparavant, j'essaierai de m'en souvenir. Pas souvenir d'avoir vu passer cela dans mon exploration de la doc mysql.

    Alain

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/12/2006, 16h56
  2. PLusieurs COUNT dans une requete?
    Par haludo dans le forum Access
    Réponses: 3
    Dernier message: 04/10/2006, 10h38
  3. Effacer plusieurs champs dans une table
    Par kurkaine dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/08/2006, 08h22
  4. Réponses: 3
    Dernier message: 07/06/2006, 12h05
  5. [SQL] calcul de plusieurs variables dans une table
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/03/2006, 21h53

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