2015-11-26 126 views
0

我正在试图找出一个sql查询来计算平均值3个值到2个小数位。SQL查询平均值

SELECT RatingId, Productivity, CodeQuality, AgileProcess 
    , ROUND(AVG(Productivity + CodeQuality + AgileProcess)/3, 2) AS Average 
FROM DeveloperRating 
GROUP BY RatingId, Productivity, CodeQuality, AgileProcess` 

Productivity,CodeQuality,AgileProcess是当前在数据库中设置的所有值。

如果数值设置如下: 生产率= 2 CodeQuality = 8个AgileProcess = 4

我得到的答案4.我想答案是4.66?

谁能帮助?

+0

MySQL不会做整除,所以这是不可能的,你会得到一个整数。例如,这个SQL Fiddle返回正确的结果:http://www.sqlfiddle.com/#!9/9eecb7d。 –

回答

1

您不需要在这里使用聚合函数!您正在为表中的每一行分组。除此之外,您可能需要将您的值转换为DOUBLE以获得您所需要的值。

尝试:

select ratingId, productivity, codeQuality, agileProcess 
     , round(cast(productivity as double) + 
       cast(codeQuality as double) + 
       cast(agileProcess as double)/3,2) 
from developerRating 
+0

谢谢你的工作:) –

+0

@RichardQuinn如果你觉得这个答案有用,投票表决或接受它 – Barranka