2011-02-11 198 views
2

我有一個評論表,我在其中存儲評論內容,作者ID,並且還有一個字段只能是1或0(如果它是1,這是最佳評論該職位)。我想要做的是通過它的id來計算特定用戶的整個評論中的最佳評論的百分比。我想到的唯一方法是做兩個mysql查詢 - 首先計算最好的評論,然後計算總評論,然後計算百分比,但我相信有一個更好的方法來做到這一點,使用一個MySQL查詢...有沒有?在這種情況下計算百分比的最佳方法

回答

4

好了,你還沒有說你的表模式,但你可以做這樣的事情:

SELECT customer, (SUM(best)/COUNT(comment_id)) * 100 AS percentage_best 
FROM comments 
GROUP BY customer; 

由於best場是1或0,總結列會給best評論的數量,然後你可以指望其餘的。

對於特定客戶,您當然可以省略GROUP BY和初始字段並添加WHERE子句。

SELECT (SUM(best)/COUNT(comment_id)) * 100 AS percentage_best 
FROM comments 
WHERE customer = 123; 

希望你對customer領域的INDEX在任何情況下comments表。

+0

SUM(最好)請您詳細解釋這部分內容嗎? – 2011-02-11 21:44:18