作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有如下所示的表格
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/
我是一名优秀的程序员,十分优秀!