Regroupement par date et taille

Fermé
totoche34130 - 22 sept. 2015 à 08:57
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 - 5 oct. 2015 à 17:29
Bonjour, c'est mon premier post donc soyez indulgent si je n'utilise pas le bon vocabulaire.
J'ai une table qui contient Taille(taille de l'eleve en cm), Datemes(Date de la mesure au format 2008Sept pour septembre 2008) et je voudrait produire un tableau ou le nombre d'élèves mesurant x cm par palier de 5cm est croisé avec les dates.
taille /2008Sept/2009Sept/
120 / 3 / 5 /
125 / 6 / 8 /
et ainsi de suite
je suis pas spécialiste, j'ai essayé différents trucs à base de floor et de groupby mais je n'ai pas trouvé la solution.
si quelqu'un peut éclairer ma lanterne ce serait gentil.
Christophe

1 réponse

flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
5 oct. 2015 à 17:29
Salut,

Je te propose la solution suivante :

- Tout d'abord, on détermine comment calculer ces paliers de 5cm à partir des tailles de ta base. Je propose de procéder de la manière suivante : on calcule le plus petit entier possible lorsqu'on divise la taille par 10, puis on multiplie à nouveau cette taille par 10, à laquelle on ajoute 5 si le modulo de la taille de départ est supérieur ou égal à 5.
Ce qui revient donc à écrire "floor(Taille/10) * 10 + if(Taille%10 >= 5, 5, 0)".

- Il suffit alors de grouper sur cette colonne calculée, puis sur les dates des relevés, pour obtenir les données que tu souhaites :

select floor(Taille/10) * 10 + if(Taille%10 >= 5, 5, 0) as Palier, Datemes, count(*) as Nb_Eleves from TaTable group by Palier, Datemes;
0