2015-11-26 129 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