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 :

Comptage sur un seul champ


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Par défaut Comptage sur un seul champ
    Bonjour,

    A partir de ce listing :

    MAISON_AE145
    MAISON_AR717
    MAISON_IJ07
    JARDIN_78
    JARDIN_47
    VOITURE_78AA
    VOITURE_AA45
    ARTICLE_4547
    BOITE_AA54
    En SQL, j'aimerais compter le nombre de chaque élément (en sachant qu'il existe des centaines d'articles différents dont je n'ai pas la liste) :
    Voici le résultat voulu

    Element | Nombre
    MAISON | 3
    JARDIN | 2
    VOITURE | 2
    ARTICLE | 1
    BOITE | 1
    Bien-sur j'ai essayé d'utiliser GROUP BY et COUNT(*), mais la difficulté est que la requête porte sur un seul champ. (le type et l'id sont mélangés)

    merci pour l'aide

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Donne la structure de la table et la requête que tu as essayée.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pour MySQL, ça pourrait être quelque-chose dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT LEFT(Element, POSITION('_',Element)), COUNT(*) 
    FROM la_table
    GROUP BY LEFT(Element, POSITION('_',Element))

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Par défaut
    merci beaucoup, c'est exactement ce que je cherche.

    Edit : ça ne fonctionne pas avec "POSITION" (j'ai une erreur de syntaxe MySQL), mais ça fonctionne avec "LOCATE".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT LEFT(id, LOCATE('_', id)), count(*)
    FROM articles	
    GROUP BY LEFT(id, LOCATE('_',id))
    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
    21
    22
    23
    --
    -- Structure de la table `articles`
    --
     
    CREATE TABLE IF NOT EXISTS `articles` (
      `id` varchar(55) NOT NULL,
      `valeur` int(11) NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `articles`
    --
     
    INSERT INTO `articles` (`id`, `valeur`) VALUES
    ('MAISON_IJ04', 0),
    ('MAISON_IJ07', 0),
    ('MAISON_AE145', 0),
    ('JARDIN_78', 0),
    ('JARDIN_74', 0),
    ('VOITURE_78AA', 0),
    ('VOITURE_7R5A', 0),
    ('VOITURE_1111', 0),
    ('BOITE_AA54', 0);

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/04/2009, 18h20
  2. Utilisation de Distinct sur un seul champ!
    Par Bils dans le forum Langage SQL
    Réponses: 10
    Dernier message: 21/11/2007, 09h31
  3. [Requete] qui n'affiche pas les doublons mais sur un seul champs
    Par joseph.breham dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/12/2006, 14h57
  4. [9i, débutant] Clause DISTINCT sur un seul champ
    Par JYves dans le forum Oracle
    Réponses: 11
    Dernier message: 06/09/2006, 17h08
  5. Distinct sur un seul champ...
    Par Noodles dans le forum Langage SQL
    Réponses: 16
    Dernier message: 04/01/2005, 09h36

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