So erhalten Sie den Durchschnitt der DATETIME-Spalte in MySQL beim Gruppieren nach anderen Spalten
P粉460377540
2023-09-05 11:46:21
<p>Ich erstelle und fülle eine MySQL-Tabelle mit der folgenden Abfrage: </p>
<pre class="brush:php;toolbar:false;">SET time_zone = '+00:00';
CREATE TABLE timestamp_n_datetime (
id INT,
Uhrzeit DATETIME,
avg_time DATETIME
);
INSERT INTO timestamp_n_datetime(id,time,avg_time)
VALUES("1","2023-01-03 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>Ich möchte die Spalte „avg_time“ mit dem Durchschnitt der Spalte „time“, gruppiert nach ID, füllen. Beispielsweise hat die erste Zeile „id“ = 1, daher sollte die Spalte „avg_time“ den Durchschnitt der ersten, zweiten und fünften Zeile annehmen, da deren „id“ ebenfalls 1 ist. </p>
<p>Wie soll ich diese Frage beantworten? </p>
<p>Bearbeiten: Zur Verdeutlichung möchte ich alle DATETIME-Spalten in Millisekunden umwandeln, sie alle addieren und dann durch die hinzugefügte Zahl dividieren. Wenn Sie beispielsweise für id=2 diese Werte in Millisekunden umrechnen, addieren und dann durch 2 dividieren (da es zwei Zeilen mit „id“ = 2 gibt), erhalten Sie den Durchschnitt für den 17. März 2023 um 17:45:00 Uhr. Ich möchte auf diese Weise den Durchschnitt ermitteln. </p>
使用此
UNIX_TIMESTAMP
转换为秒,然后使用FROM_UNIXTIME
将其恢复为日期时间格式,这就是获取平均值的方法:这是填充平均值的方法: