gpt4 book ai didi

mysql - 如何在mysql中添加两毫秒列

转载 作者:行者123 更新时间:2023-11-29 23:16:06 24 4
gpt4 key购买 nike

我有如下所示的表格

gid code time  qid
1 123 08:108 15
1 145 11:012 15
1 145 11:216 16
1 123 12:102 16

现在你想对“gid”进行分组,并使用相同的代码列添加两个时间(例如:我取 123,计算时间 (08:108+12:102)/2。除以“2”,因为代码123出现两次,如果出现三次则除以3这应该是动态的。

我想要的结果应该是

gid code time   
1 123 10:105
1 145 11:114

我尝试使用此查询

按代码从结果组中选择总和(时间);//结果为整数值

并按代码从结果组中选择时间戳(sum(time));//结果为空

最佳答案

您的时间字段看起来不像TIME类型。 TIME 字段的格式为 HH:MM:SS 并且不允许存储毫秒。 MySQL Documentation states that trailing fractions of seconds are allowed in date and time values, but are discarded and not stored .

您的 time 字段看起来像是一个 varchar,虽然您可以在其上使用 SUM()AVG() 等函数,您的符号秒:毫秒是错误的。

您可以使用以下查询:

SELECT code,AVG(REPLACE(time,':','.')) FROM results group by code

这会将值中的 : 替换为 .,创建一个 AVG() 可以正确处理的 float 。

结果:

code    AVG(REPLACE(time,':','.'))
123 10.105
145 11.114

当然,这会在 SQL 服务器上创建更多操作。最好的方法是将列定义更改为 FLOAT 并将秒和毫秒存储为 float :

code    time
123 8.108
145 11.012
145 11.216
123 12.102

SELECT code,AVG(time) FROM results GROUP BY code的结果:

code    AVG(time)
123 10.1050000190735
145 11.1139998435974

关于mysql - 如何在mysql中添加两毫秒列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27793711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com