我有一个评论表,我存储评论内容,作者ID,还有一个字段只能是1或0(如果它是1,这是对帖子的最佳评论)。我想要做的是通过它的id计算特定用户的整个评论中的最佳评论的百分比。我想到的唯一方法是制作两个mysql查询 - 首先计算最好的注释,然后计算总注释然后计算百分比,但我相信有一个更好的方法来做到这一点,使用一个mysql查询...有没有?
答案 0 :(得分: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;
希望在任何一种情况下,INDEX
表中的customer
字段都有comments
。