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 :

select avec count() inclu


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Par défaut select avec count() inclu
    Bonjour à tous,


    Est-il possible de selectionner des enregistrements en affichant aussi le nombre d'une des occurences?

    Par exemple , imaginons une table de clients :
    table_clients avec nom, prenoms, date de naisance, code postal.

    et je voudrais voir tout (*) avec le nb de fois où leur date de naissance figure ds la table en classant par ordre de count(birthday) puis de nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     id        nom        prenom      birthday     cp             count(birthday)
     74     martin      isabelle      5.5.2005    75000          1
     22      dupond    alain          1.1.2001     01000          4
     94     dupond    alain          1.1.2001     17000           4
     56     dupond    michel        1.1.2001     13000          4
     55     Gorthin      charles     1.1.2001      25200          4
    ...

    ou mieux encore :

    voir tout (*) de ceux dont la date de naissance figure plusieurs fois dans la table et qui portent le meme nom en classant par ordre de count(birthday) puis de nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     id        nom        prenom      birthday     cp             count(birthday)
     22      dupond    alain          1.1.2001     01000          3
     94     dupond    alain          1.1.2001     17000           3
    ...

    merci d'avance si vous pouvez m'aider ...

  2. #2
    Membre émérite Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Par défaut
    Quest-ce que count(birthday) ?
    Si vous avez déjà un début de requête montrez-là.

    La structure de vos tables au format SQL (CREATE TABLE..) ainsi qu'un jeu d'essais (INSERT INTO..) nous serait utile.

  3. #3
    Membre confirmé Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Par défaut
    Bonjour,

    Merci beaucoup pour votre reponse.

    count(birthday) c'est le nombre de fois où figure la date d'anniversaire dans la table.

    En fait j'ai pris un exemple fictif que tout le monde peut comprendre parce que mes tables sont beaucoup plus complexes que ça.

    Ce que je veux, c'est afficher ce nombre en face de chaque entree pour pouvoir voir les noms associes à ces dates, les ids, et les codes postaux...

    Or tous les exemples que je trouve demandent de faire un "group by".
    donc je me retrouve avec 1 count() / date d'anniversaire et du coup je ne peux pas voir si j'ai plusieurs fois le même nom à la meme date anniversaire.

    Je travaille sur les tables professionnelles qui ont des millions d'entrees .
    Je suis obligée d'automatiser...

    Toutes les requetes que j'ai testées donnent un resultat mais rien à voir avec ce que je cherche



    je voudrais qqch comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    select id, nom, prenom, birthday, code postal, count(birthday)  ;
     
    ou mieux
     
    select id, nom, prenom, birthday, code postal, count(birthday)  where count(birthday) > 1;

  4. #4
    Membre émérite Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Par défaut
    Ça devrait ressembler à ceci :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT id, nom, prenom, Client.birthday, cp, nb
    FROM Client
        JOIN (
            SELECT Count(*) AS nb, birthday
            FROM client
            GROUP BY birthday
        ) AS nb_birthday
            USING(birthday)
    et
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT id, nom, prenom, Client.birthday, cp, nb
    FROM Client
        JOIN (
            SELECT Count(*) AS nb, birthday
            FROM client
            GROUP BY birthday
        ) AS nb_birthday
            USING(birthday)
    WHERE nb>1

  5. #5
    Membre confirmé Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Par défaut
    merci beaucoup pour votre aide et le temps passé !

    le count ne s'affiche pas ...

    Vous definissez nb et nb_birthday, mais ne reutilisez que nb . est-ce normal?

  6. #6
    Membre émérite Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Par défaut
    Comment ça, "le count ne s'affiche pas", est-ce que vous pouvez donner plus d'infos ?..
    nb_birthday est le nom de la table dérivée, il n'y a pas besoin de l'utiliser dans la requête que j'ai écrite.
    Si vous ne vous en sortez pas avec la requête plus haut, sans nous montrer la structure des tables ainsi qu'un jeu d'essais on ne pourra pas avancer.
    De plus cela fait parti des règles du forum :
    http://www.developpez.net/forums/a69...gage-sql-lire/

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/08/2013, 15h38
  2. requete select avec count et group by
    Par paco503 dans le forum Requêtes
    Réponses: 7
    Dernier message: 06/05/2013, 17h42
  3. SELECT avec COUNT comment affiché 0 si COUNT = 0
    Par george101 dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/03/2009, 11h47
  4. requete de select avec un count trop longue
    Par Phiss dans le forum ASP
    Réponses: 8
    Dernier message: 21/05/2008, 19h44
  5. select avec plusieurs count as
    Par esojrehcir dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/10/2007, 17h05

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