我正在创建一个MySQL表,并使用以下查询进行填充:
SET time_zone = '+00:00';
CREATE TABLE timestamp_n_datetime (
id INT,
time 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);
我想用按id分组的“time”列的平均值填充“avg_time "列。例如,第一行的”id“= 1,因此”avg_time“列应取第一行、第二行和第五行的平均值,因为它们的”id“也是1。
我该如何处理这个问题呢?
编辑:为了澄清,我希望所有的DATETIME列都转换为毫秒,将它们相加,然后除以相加的数字。例如,对于id=2,将它们转换为毫秒,将它们相加,然后除以2(因为有两行'id' = 2),得到2023年3月17日下午5:45:00的平均值。
1条答案
按热度按时间deikduxw1#
使用This
UNIX_TIMESTAMP
将其转换为秒,然后使用FROM_UNIXTIME
将其恢复为日期时间格式,这就是如何获得平均值的方法:以下是如何填充平均值: