Étant donné une table (mytable) contenant un champ numérique (mynum), comment procéder pour écrire une requête SQL qui résume les données de la table en fonction des plages de valeurs de ce champ plutôt que de chaque valeur distincte? Pour un exemple plus concret, faisons des intervalles de 3 et juste "summary" avec un nombre (*), de telle sorte que les résultats indiquent le nombre de lignes où mynum est 0-2.99, le nombre de les lignes où il est, 3 à 5,99 où il est, etc. 6 à 8,99Regroupement par intervalles
Répondre
l'idée est de calculer une fonction du champ qui a une valeur constante au sein de chaque groupe que vous voulez:
select count(*), round(mynum/3.0) foo from mytable group by foo;
Je ne sais pas si cela est applicable à mySql, de toute façon dans SQL Server, je pense que vous pouvez "simplement" utiliser group by dans la liste de sélection et la liste group by.
Quelque chose comme:
select
CASE
WHEN id <= 20 THEN 'lessthan20'
WHEN id > 20 and id <= 30 THEN '20and30' ELSE 'morethan30' END,
count(*)
from Profiles
where 1=1
group by
CASE
WHEN id <= 20 THEN 'lessthan20'
WHEN id > 20 and id <= 30 THEN '20and30' ELSE 'morethan30' END
retours quelque chose comme
column1 column2
---------- ----------
20and30 3
lessthan20 3
morethan30 13
Je ne sais pas si cela fonctionnerait dans MySQL non plus, mais il a le problème de se limiter aux groupes que vous définissez plutôt que de couvrir toutes les plages de trois (sans, par exemple, définir 334 cas si vos valeurs augmentent à 1000, alors en espérant qu'un 1002 ne se montre jamais). –
- 1. Regroupement par la dernière Char
- 2. Regroupement Connexion Regroupement
- 3. LINQ to SQL - Regroupement par heures
- 4. Regroupement par un Top N dans MySQL
- 5. Plage de dates de regroupement par semaine
- 6. Regroupement par semaine/mois/etc & ActiveRecord?
- 7. Contournement par manque de regroupement dans CompositeCollection
- 8. Regroupement par chevauchement dans les rapports Crystal
- 9. Regroupement par plage horaire dans Linq
- 10. Groupe MySQL par intervalles dans une plage de dates
- 11. PHP: trier le tableau par intervalles d'une demi-heure
- 12. REGEX: intervalles entre virgules separé
- 13. Regroupement par jour à partir de 2 tables
- 14. (SQL) Regroupement par la fin de la semaine
- 15. modèles Django - Regroupement par un paramètre de chaîne
- 16. résultat Regroupement par date dans une base MySQL
- 17. Regroupement MySQL avec un champ séparé par des virgules
- 18. C# -SharePoint - SPGridView - Regroupement
- 19. Regroupement des méthodes javadoc
- 20. Regroupement avec ordre?
- 21. intervalles de temps Graphing dans Access
- 22. LINQ - regroupement et l'agrégation
- 23. Comparer la valeur d'une variable à intervalles
- 24. Générer tous les intervalles continus d'une série
- 25. MySQL: multiples regroupement
- 26. Regroupement en mode hibernation
- 27. asp.net radio bouton regroupement
- 28. regroupement T-SQL question
- 29. cadre de regroupement d'objets
- 30. Expression régulière question de regroupement
Si vous avez modifié légèrement cette 3 * ronde (mynum/3.0) vous auriez la limite inférieure de chaque groupe affiché pour vous . – DBMarcos99