Regroupement de segments de temps pour les calculs de somme et de moyenne
Dans la base de données MySQL, vous pouvez récupérer des données résumées à partir d'une table contenant des enregistrements horodatés avec des valeurs variables intervalles entre les captures. Votre objectif est de regrouper ces enregistrements et de calculer les valeurs de somme et moyennes pour des segments de temps spécifiques, tels que 10 secondes ou 30 secondes.
SOLUTION
La clé du regroupement du temps segments réside dans la clause GROUP BY. Pour regrouper et résumer les données en fonction d'intervalles de 30 secondes, utilisez la commande suivante :
GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 30
Cette expression divise l'horodatage Unix de chaque enregistrement par 30, en arrondissant aux 30 secondes inférieures les plus proches. En conséquence, les enregistrements dans le même intervalle de 30 secondes seront regroupés.
Personnalisation des limites des segments de temps
Vous pouvez modifier les limites de vos segments de temps en ajustant le dénominateur dans l'expression DIV. Par exemple, pour regrouper par intervalles de 20 secondes :
GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 20
Segments de temps de mise en mémoire tampon
Pour ajouter un tampon à vos segments de temps, vous pouvez utiliser la formule suivante :
GROUP BY (UNIX_TIMESTAMP(time_stamp) + r) DIV 30
Dans cette expression, r représente un entier non négatif inférieur à 30. En ajoutant une valeur au horodatage, vous pouvez créer des segments temporels qui se chevauchent. Par exemple :
GROUP BY (UNIX_TIMESTAMP(time_stamp) + 5) DIV 30
Cette requête regroupera les enregistrements en segments temporels allant de hh:mm:05 à hh:mm:35 et de hh:mm:35 à hh:mm 1:05.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!