avg*count返回浮点值

gv8xihay  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(313)

为什么这个select语句返回浮点值?如何将其转换为整数?

select area.name, coalesce(((avg(recording.length)*count(recording.length))/1000/60),0)
mgdq6dx1

mgdq6dx11#

如果 avg(recording.length)*count(recording.length) 不是的倍数 60000 ,当你除法的时候,你会得到一个分数。你可以用 ROUND() 将其四舍五入为最接近的整数。
此外,由于平均值是总和除以计数,因此乘以计数只返回总和。你可以直接用。

SELECT area.name, coalesce(ROUND(SUM(recording.length)/1000/60)), 0)

相关问题