2011-02-11 192 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