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 :

Résultats de requêtes groupés


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Résultats de requêtes groupés
    Bonjour

    je voudrais trouver les champs de base de données qui contiennent le plus de résultats groupé par catégorie.

    id cat post_title
    1 1 title 1
    2 1 title 2
    3 1 title 3
    4 2 title 4
    5 3 title 5
    6 3 title 6
    7 3 title 7
    8 2 title 8
    9 3 title 9

    les résultats devrait être afficher comme ceci

    4 résultats dans la categorie 3
    3 résultats dans la categorie 1
    2 résultats dans la categorie 2

    Aussi, si j'ai 200 categories... je voudrais afficher seulement les 5 catégories qui contiennent le plus de post. j'ai déjà essayer quelques trucs mais rien ne fonctionne et je n'ai pas vraiment de code à montrer.

    Si quelqu'un peut m'aider ça serait vraiment apprécié. Merci d'avance pour votre temps !

  2. #2
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut Procedure Stocké
    Je te propose d'utiliser un procedure stocké qui contient une requête qui calcule les postes/cat , et qui contient un boucle For pour retourner seulement les 5 premier dans le cas ou on plus que 200.
    Preciser avec quel SGBD tu travail, car le syntaxe de procedure se differt d'un sgbd à un autre.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je suis arriver à ceci... ca fonctionne mais il existe surement une meilleure méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT
    	TOP 5 COUNT(cat) as total
    FROM
    	my_table
    GROUP BY
           cat
    ORDER BY total DESC
    Si quelqu'un a un problème avec cette façon de faire faites moi signe

    Merci

  4. #4
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par mikehins Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT
    	TOP 5 COUNT(cat) as total
    FROM
    	my_table
    GROUP BY
           cat
    ORDER BY total DESC
    Vraiment je ne connais pas la fonction "Top", mais tu as oublié la selection de champ "cat" , çàd:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT cat,TOP 5 COUNT(cat) as total FROM...

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    " cat " n'est pas obligatoire dans ce cas

    le résultat sera afficher comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    row1 12
    row2 9
    row3 7
    row4 5
    ...
    et la fonction " TOP " c'est SQL SERVER, je crois que MySQL c'est " LIMIT "

  6. #6
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par mikehins Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    row1 12
    row2 9
    row3 7
    row4 5
    ...
    Est ce que tu peut me dire à quelle categorie correspond le '12'?
    C'est pourquoi il faut ajouter le 'cat' .

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Désolé

    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
    24
    25
    26
    27
    28
     
    #	cat	post_title
    ----------------------
    1	1	title 1
    2	1	title 2
    3	1	title 3
    4	2	title 4
    5	3	title 5
    6	3	title 6
    7	3	title 7
    8	2	title 8
    9	3	title 9
    ----------------------
     
    SELECT
    	TOP 5 COUNT(cat) AS total, cat
    FROM
    	my_table
    GROUP BY
           cat
    ORDER BY total DESC
     
    va donner
     
    #	total	cat
    1	4	3
    2	3	1
    3	2	2
    c'est peut-être moi... dans mon exemple le TOP 5 ne change rien...mais si j'ai 100 catégories et que je veux seulement les 5 premières alors là, il est utile !

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/08/2011, 15h59
  2. Affiner les résultats d'une requête (GROUP BY ?)
    Par Malikiwi dans le forum Langage SQL
    Réponses: 20
    Dernier message: 13/05/2011, 11h35
  3. Limiter des résultats de requête contenant un GROUP BY
    Par jcachico dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/10/2008, 17h03
  4. Requête GROUP BY inclure les résultats NULL
    Par cantador dans le forum SQL
    Réponses: 14
    Dernier message: 10/10/2008, 08h45
  5. Résultat de requête suivant l'appartenance à un groupe
    Par electrosat03 dans le forum Access
    Réponses: 5
    Dernier message: 18/01/2007, 21h35

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