Je crée et remplis une table MySQL à l'aide de la requête suivante :
SET time_zone = '+00:00'; CREATE TABLE timestamp_n_datetime ( identifiant INT, heure DATEHEURE, avg_time DATETIME ); INSÉRER DANS timestamp_n_datetime(id,time,avg_time) VALEURS ("1", "03/01/2023 10:12:13", NULL), ("1", "2023-02-04 11:13:14", NULL), ("2", "2023-03-02 09:14:10", NULL), ("2", "2023-04-02 05:15:50", NULL), ("1", "2023-06-10 02:04:10", NULL);
Je souhaite remplir la colonne "avg_time" avec la moyenne de la colonne "time" regroupée par identifiant. Par exemple, la première ligne a « id » = 1, donc la colonne « avg_time » doit prendre la moyenne des première, deuxième et cinquième lignes puisque leur « id » est également 1.
Comment dois-je répondre à cette question ?
Modifier : pour clarifier, je souhaite convertir toutes les colonnes DATETIME en millisecondes, les additionner toutes, puis les diviser par le nombre ajouté. Par exemple, pour id=2, les convertir en millisecondes, les additionner puis les diviser par 2 (puisqu'il y a deux lignes avec « id » = 2) donne la moyenne du 17 mars 2023 à 17h45. Je veux obtenir la moyenne de cette façon.
Utilisez ceci
UNIX_TIMESTAMP
转换为秒,然后使用FROM_UNIXTIME
pour le remettre au format datetime, voici comment obtenir la moyenne :Voici comment remplir la moyenne :