问题描述
我有一个表,存储了他们的客户给帖子的反馈评论和评分。我只想知道如何查询每个帖子的平均评分除以5的百分比。
因此公式将如下所示。例如:
(rate1 * customer) + (rate2 * customer)
----------------------------------------- * 100 / 5 = AVERAGE percentage within 5 stars rating
total customer(per post)
所以我现在的查询是这样的:
SELECT
service_providers_post,rating,count(customer) as 'perrate_customers',t.perpost_customers
FROM serviceproviders_feedback
JOIN (SELECT
service_providers_post as 'postid',COUNT(customer) as 'perpost_customers'
FROM serviceproviders_feedback
GROUP BY service_providers_post) t
on t.postid = serviceproviders_feedback.service_providers_post
GROUP BY service_providers_post,rating
以上查询的输出如下:
我想要的输出是显示每个帖子在1-5之间的每个评分的平均评分。
那么如何获取查询中每个帖子的平均值?
这里有一个链接作为我的桌子的例子
解决方法
我不确定您是否只希望获得平均评分:
SELECT
postid,avg(rating)
FROM ratings r
GROUP BY r.postid;
或具有全球平均值的新列:
SELECT
postid,rating,count(customer) as 'perrate_customers',t.perpost_customers,t.perpost_rating_avg
FROM ratings r
JOIN (SELECT
postid as 'post_id',avg(rating) as 'perpost_rating_avg',COUNT(customer) as 'perpost_customers'
FROM ratings
GROUP BY postid) t
on t.post_id = r.postid
GROUP BY r.postid,r.rating