Partage
  • Partager sur Facebook
  • Partager sur Twitter

requete count max

Sujet résolu
    23 avril 2011 à 11:58:25

    Bonjour,

    j'ai une table qui contient des idAuteur et des IdLivres dans le genre
    1 100
    2 101
    3 102
    1 103
    ...

    et je voudrais simplement extraire l'idAuteur qui apparait le plus souvent dans la table (ici 1)
    J'ai l'impression que ce n'est pas compliqué mais je ne vois vraiment pas comment faire...

    merci
    • Partager sur Facebook
    • Partager sur Twitter
      23 avril 2011 à 12:36:50

      Essaie ceci :

      SELECT auteur_id, count(*) AS nb_livres FROM table
      GROUP BY auteur_id
      ORDER BY count(*) DESC
      LIMIT ce que tu veux
      
      • Partager sur Facebook
      • Partager sur Twitter
        23 avril 2011 à 13:05:37

        ca me donne le résultat que je veux oui.

        Mais par contre c'est moi qui choisi le nombre de résultats que je veux et je ne suis pas censé savoir combien il y en a...

        N'y a t-il pas une autre requete pour selectionner le max de count?
        • Partager sur Facebook
        • Partager sur Twitter
          23 avril 2011 à 13:31:50

          Si tu n'en veux qu'un, mets LIMIT 1...

          Sinon, une méthode un peu plus "correcte"... l'idée étant d'éviter de tout compter 2 fois (une fois pour avoir le max(count) et une fois pour avoir les lignes qui lui sont égales)... celle-ci sort les ex-aequo aussi (donc elle peut retourner plus d'un résultat).

          WITH c AS (SELECT count(*) AS nb_livres, auteur_id FROM auteurs_livres GROUP BY auteur_id) 
          SELECT * FROM c WHERE nb_livres = (SELECT max(nb_livres) FROM c);
          
          • Partager sur Facebook
          • Partager sur Twitter
            23 avril 2011 à 13:52:11

            merci bcp! c'est exactement ce qu'il me fallait ^^
            • Partager sur Facebook
            • Partager sur Twitter

            requete count max

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown