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 :

Top 5 des occurences les plus fréquentes (p.ex : prénom des utilisateurs)


Sujet :

Langage SQL

  1. #1
    Membre actif Avatar de AlphaYoDa
    Profil pro
    Inscrit en
    novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : novembre 2004
    Messages : 213
    Points : 210
    Points
    210
    Par défaut Top 5 des occurences les plus fréquentes (p.ex : prénom des utilisateurs)
    Bonjour !

    J'aurai aimé pour un site web (PHP) afficher le top 5 des prénoms les plus fréquents dans la base de donnée, comment est-ce que je pourrai m'y prendre pour la requête et pour qu'elle soit optimisée ?

    "prenom" est un champ d'une table d'enregistrement des utilisateurs


    une piste, une requete est la bienvenue !

    merci

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2006
    Messages : 7 588
    Points : 28 997
    Points
    28 997
    Billets dans le blog
    16
    Par défaut
    Bonsoir,

    Vous pouvez vous inspirer de

    http://www.developpez.net/forums/sho...d.php?t=269827
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.

  3. #3
    Membre actif Avatar de AlphaYoDa
    Profil pro
    Inscrit en
    novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : novembre 2004
    Messages : 213
    Points : 210
    Points
    210
    Par défaut
    je suis désolé mais ça ne m'aide pas trop .. je désire connaitre "les valeurs d'un champ les plus fréquentes" et non les X dernières ..

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2006
    Messages : 7 588
    Points : 28 997
    Points
    28 997
    Billets dans le blog
    16
    Par défaut
    Les 5 prénoms les plus fréquents sont ceux tels que Count(Prenom) Group by Prenom a la valeur la plus élevée. De la même façon, les 5 dernières dates de facture sont celles dont la valeur est la plus élevée : même combat.

    Toujours en vous inspirant du même message, si votre table s'appelle Utilisateur, voyez à remplacer "From Utilisateur" par une expression de table du genre :

    "From (Select Prenom, Count(Prenom) As CountPrenom From Utilisateur Group by Prenom)"

    C'est la colonne CountPrenom qui prend le relais de la date de facture.

    Bonne chance...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.

  5. #5
    Membre actif Avatar de AlphaYoDa
    Profil pro
    Inscrit en
    novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : novembre 2004
    Messages : 213
    Points : 210
    Points
    210
    Par défaut
    super merci !!!!



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT count(prenom) as prenomTop, prenom FROM _table_ GROUP BY prenom ORDER BY prenomTop DESC LIMIT 5
    bonne journée !

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2005
    Messages : 1 673
    Points : 1 742
    Points
    1 742
    Par défaut
    Et cette requête vous permet de faire ça :
    Citation Envoyé par AlphaYoDa
    le top 5 des prénoms les plus fréquents
    Il manquerait pas quelque chose ?
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  7. #7
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2006
    Messages : 7 588
    Points : 28 997
    Points
    28 997
    Billets dans le blog
    16
    Par défaut
    Bonjour AlphaYoDa,

    Magnus a raison : ce que vous montrez n'est qu'une partie de la requête complète.
    Espérons que vous avez fait le nécessaire...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.

  8. #8
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2006
    Messages : 7 588
    Points : 28 997
    Points
    28 997
    Billets dans le blog
    16
    Par défaut
    On ne devrait pas être loin de quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Select   Distinct x.CountPrenom  
    From     (Select       Distinct Count(Prenom) As CountPrenom 
              From         Utilisateur       
              Group by     Prenom) As x
    Where    (Select Count(*)
              From        (Select    Distinct Count(Prenom) As CountPrenom 
                           From      Utilisateur 
                           Group by  Prenom) As y
              Where      y.CountPrenom > x.CountPrenom) < 5
    Order by   x.CountPrenom desc
     ;
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.

  9. #9
    Membre actif Avatar de AlphaYoDa
    Profil pro
    Inscrit en
    novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : novembre 2004
    Messages : 213
    Points : 210
    Points
    210
    Par défaut
    bwah il manque juste un "LIMIT 5"

    merci

  10. #10
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    septembre 2006
    Messages
    7 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2006
    Messages : 7 588
    Points : 28 997
    Points
    28 997
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par AlphaYoDa
    bwah il manque juste un "LIMIT 5"
    1) "LIMIT 5" n'est pour le moins pas standard.

    2) En lieu et place, vous remarquerez donc que j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (... WHERE      y.CountPrenom > x.CountPrenom) < 5
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.

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

Discussions similaires

  1. Réponses: 37
    Dernier message: 12/08/2014, 23h25
  2. Réponses: 25
    Dernier message: 11/12/2013, 10h22
  3. Réponses: 8
    Dernier message: 25/06/2013, 01h22
  4. [XL-2002] Top 10 des mots les plus fréquent dans une colonne de mots
    Par _gege_ dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/07/2010, 00h20
  5. top 10 des requêtes les plus longues
    Par cseguino dans le forum Administration
    Réponses: 1
    Dernier message: 10/02/2010, 10h46

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