Ma table comportait 3 champs: id et unit. Je veux compter combien d'ID ont < 10, 10-49, 50-100 unités etc. Le résultat final devrait ressembler à:SQL: aide à la requête
Category | countIds
<10 | 1516
10 - 49 | 710
50 - 99 | 632
etc.
Ceci est la requête qui retourne chaque identifiant et le nombre d'unités qu'il a:
select id, count(unit) as numUnits
from myTable
group by id
Comment puis-je construire sur cette requête pour me donner la catégorie, countIds résultat?
Note: Je n'arrivais pas à trouver comment nommer cette question. S'il vous plaît ne hésitez pas à le modifier/offre des suggestions
Très beau, seulement r.seq doit être dans le select ne le fait pas, parce que vous l'avez dans l'ordre par (il ne fonctionne pas sur Oracle parce que tout ce que vous commandez par doit être dans le select, et je pense c'est vrai pour la plupart des DB). En tout cas, je pense vraiment que c'est une bonne réponse et mieux que la mienne! – dcp
@dcp: Merci! Oui, il est possible que Oracle ou une autre implémentation nécessite qu'une colonne dans ORDER BY apparaisse dans le select. Mais FWIW, ce serait une idiosyncrasie du vendeur; il n'est pas requis par la norme ANSI SQL. J'utilise le plus souvent MySQL, et ça marche bien. –
Une expression triée par doit uniquement apparaître dans la liste de sélection si vous utilisez DISTINCT ou GROUP BY, au moins dans Oracle. –