Comment obtenir la moyenne de la colonne DATETIME dans MySQL tout en regroupant par d'autres colonnes
P粉460377540
2023-09-05 11:46:21
<p>Je crée et remplis une table MySQL à l'aide de la requête suivante : </p>
<pre class="brush:php;toolbar:false;">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);</pre>
<p>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. </p>
<p>Comment dois-je répondre à cette question ? </p>
<p>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. </p>
Utilisez ceci
UNIX_TIMESTAMP
转换为秒,然后使用FROM_UNIXTIME
pour le remettre au format datetime, voici comment obtenir la moyenne :Voici comment remplir la moyenne :