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 :

'group by' et 'count' dans 8 colonnes, possible ?


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut 'group by' et 'count' dans 8 colonnes, possible ?
    Bonsoir, j'ai une table (vehicules) que voici :



    On retrouve toujours les mêmes nom de la colonne V1 à V8, et mon but est de regrouper c'est nom et compter le nombre de nom dans ma table :

    exemple :

    VSAV1HAY = 30
    VL1HAY = 2
    etc....

    j'ai donc essayé cette requête, mais sans succès, auriez vous une idée
    (ps : j'ai conscience que la table est mal construite)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT V1,V2,V3,V4,V5,V6,V7,V8, count(id) AS nbr FROM vehicules GROUP BY V1

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    déjà lisez ceci : http://sqlpro.developpez.com/cours/sqlaz/ensembles/

    Ensuite concernant les group by il faut que chaque colonne présente dans la clause select, et non encadrée par une fonction d'agrégation (count, max, min, etc), soient présente dans la clause group by.

    Et pour finir je n'ai pas compris ce que vous cherchiez à compter, donc si vous pouviez donner le résultat escompter au vu du jeu de test ca serai pas mal.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    ok,

    voici le jeu de réponse de la requête ci dessus :

    type nombres
    VSAV1HAY 6
    EA321HAY 1
    VL1HAY 6
    FPT1HAY 1
    SR1HAY 1
    VB2HAY 1
    EMB2HAY 1
    VTU1HAY 1

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    ok,

    la solution correct serai de revoir votre modélisation qui est totalement inadaptée a votre besoin.

    Pourquoi ne pas commencez apr ceci ?

    Sinon il est possible, je pense, de trouver un contournement au prix d'une requête très lourde, non évolutive et dependante des données presente dans votre table... => un traitement coté applicatif sera sans doute mieux

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    oui tu a raison trop complexe je vais revoir l'enregistrement des données coté applicatif, je pense ne faire qu'une colonne : V1
    dans la quelle tous les libelle apparaitrons, le group by et count seront facilité.

  6. #6
    Membre averti
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Points : 304
    Points
    304
    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
    15
    16
    17
    18
    19
    20
     
    SELECT v, SUM(c) FROM
       (
       SELECT v1 AS v, COUNT(DISTINCT id) AS c FROM vehicules GROUP BY v1
       UNION
       SELECT v2 AS v, COUNT(DISTINCT id) AS c FROM vehicules GROUP BY v2
       UNION
       SELECT v3 AS v, COUNT(DISTINCT id) AS c FROM vehicules GROUP BY v3
       UNION
       SELECT v4 AS v, COUNT(DISTINCT id) AS c FROM vehicules GROUP BY v4
       UNION
       SELECT v5 AS v, COUNT(DISTINCT id) AS c FROM vehicules GROUP BY v5
       UNION
       SELECT v6 AS v, COUNT(DISTINCT id) AS c FROM vehicules GROUP BY v6
       UNION
       SELECT v7 AS v, COUNT(DISTINCT id) AS c FROM vehicules GROUP BY v7
       UNION
       SELECT v8 AS v, COUNT(DISTINCT id) AS c FROM vehicules GROUP BY v8 
       )
    GROUP BY v

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

Discussions similaires

  1. 2 colonnes "count" dans un select ?
    Par Chabouille dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/11/2009, 16h28
  2. Count dans plusieurs colonne d'une même table
    Par macfleid dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/07/2008, 20h43
  3. DISTINCT + COUNT dans la même requête, possible ?
    Par Invité dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/04/2008, 11h25
  4. [CR XI] Mettre en forme dans plusieurs colonnes dans section pied de groupe
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 05/11/2007, 09h27
  5. 3 count dans un select possible?
    Par cari dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/02/2007, 14h56

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