2013-08-26 15 views

回答

3

如果您只關心尋找平均值,那麼您可以使用avg()聚合函數,該函數始終返回Double

select avg(r.score) from Rating as r 
    group by r.item 
    order by avg(r.score) desc 
+0

如果我需要浮動,在其他情況下該怎麼辦? – confile

+0

如果需要,您可以將CAST用作整個結果的浮點數。 CAST(sum(r.score)/ count(r)爲float)'@confile。我同意Nathan的觀點。 – dmahapatro

1

avg最適合這種情況。對於一般情況下,你想轉換爲雙倍你可以使用CAST:

select sum(r.score)/(CAST (count(r) AS DOUBLE PRECISION)) from Rating as r 
    group by r.item 
    order by sum(r.score)/(CAST (count(r) AS DOUBLE PRECISION)) desc