Salut programmeurs programmeuses,

Allons droit au but !

J'utilise en PHP, une base de données MySQL, et dans l'un de mes scripts j'éxecute 5 requêtes d'affilée, une pour chaque tranche d'âge:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
select count(*) from t_personne where age < 35;
select count(*) from t_personne where age BETWEEN 35 and 50;
select count(*) from t_personne where age BETWEEN 50 and 65;
select count(*) from t_personne where age BETWEEN 65 and 80;
select count(*) from t_personne where age > 80;
Comme l'indique le titre de la discussion, y'a-t-il un moyen de lancer une seule requête pour les 5 tranches d'âge, en d'autre termes comment factoriser ?

J'ai une idée ce à quoi pourrait ressembler la requête idéale, elle est fausse mais la voilà:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
select count(age) as tr1, count(age) as tr2, count(age) as tr3, count(age) as tr4, count(age) as tr5
from t_personne
where tr1 < 35
and (tr2 BETWEEN 35 and 50)
and (tr3 BETWEEN 50 and 65)
and (tr4 BETWEEN 65 and 80)
and tr5 > 80;
Si ce genre de requête est possible, je pourrais alors gagner en performance.

Je vous remercie d'avance.