Maison > base de données > tutoriel mysql > Comment regrouper les données d'horodatage MySQL dans des segments de temps personnalisés pour les calculs de somme et de moyenne ?

Comment regrouper les données d'horodatage MySQL dans des segments de temps personnalisés pour les calculs de somme et de moyenne ?

Linda Hamilton
Libérer: 2025-01-04 10:30:35
original
988 Les gens l'ont consulté

How to Group MySQL Timestamp Data into Custom Time Segments for Sum and Average Calculations?

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal