Regroupement par date et taille
totoche34130
-
flokocha Messages postés 1519 Statut Membre -
flokocha Messages postés 1519 Statut Membre -
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
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
A voir également:
- Regroupement par date et taille
- Comment réduire la taille d'un fichier - Guide
- Reduire taille image - Guide
- Afficher taille dossier windows - Guide
- Trier par date excel - Guide
- Whatsapp date incorrecte ✓ - Forum Mobile
1 réponse
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 :
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;