[SQL] Access 97 - max de count(*) group by

Bonjour,

La requête suivante est assez simple et me permet de récupérer le nombre d'observations pour chaque taxon.

SELECT [N° Taxon], count(*) AS [Nombre d'observations]
FROM observations
GROUP BY [N° Taxon];

Je voudrais maintenant récupérer le [N° Taxon] ayant le plus grand nombre d'observations, ainsi que ce nombre. C'est à dire la ligne du résultat de la requête, ayant le plus grand [Nombre d'observations].

Il y a sûrement un truc à faire avec max() quelque part, j'ai essayé différentes solutions mais ça me marche jamais.

Quelqu'un peut-il m'aider?

Merci d'avance.
Configuration: Windows XP
Firefox 2.0.0.13

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. SELECT [N° Taxon], count(*) AS [Nombre d'observations]
    FROM observations
    GROUP BY [N° Taxon]
    having count(*) = (SELECT max( count(*))
    FROM observations
    GROUP BY [N° Taxon])
    1. Merci pour ta réponse.

      C'est aussi ce que j'aurai fait sous Oracle, mais Access n'accepte pas max(count(*)).
  2. justement je l'ai testée sous oracle avant te l'écrire
    malheureusement j'ai pas access je travaille avec open office :-(
    1. Pour info max(count(*)) ne fonctionne pas non plus sous SQL Server
      1. Il y aurait moyen pour ces autres SGBD de faire un tri décroissant (ORDER BY DESC) sur la colonne retournant le nombre d'observations et de filtrer pour obtenir uniquement la première ligne, avec ROWNUM ou quelque chose d'équivalent, du moins il me semble à première vue.