MySQL中计算每个customer UUID中性+好评占总评论的百分比(评级>=3)
对应SQL查询语句
默认你的存储表名为customer_reviews,核心字段如下:
customer_uuid:客户唯一识别UUIDrating:客户给出的5分制评级
你可以直接使用以下语句实现需求:
SELECT customer_uuid, -- 计算中性+好评占比,结果保留2位小数,可按需调整保留位数 ROUND( SUM(CASE WHEN rating >= 3 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2 ) AS positive_neutral_percentage FROM customer_reviews -- 按客户UUID维度分组统计 GROUP BY customer_uuid;
补充说明
- 语句中用
CASE WHEN给符合条件的评论标记为1、不符合的标记为0,求和后即可得到单个客户的中性+好评总数量 - 乘以
100.0而非100是为了避免整数除法导致的计算错误,如果你不需要百分比格式只需要占比小数,去掉乘以100.0的逻辑即可 - 如果数据中存在评级为空的无效记录,需要过滤时可以在
FROM语句后加条件:WHERE rating IS NOT NULL - 如果需要排除评论总数过少的客户,可以在
GROUP BY后加HAVING条件,比如筛选评论数≥3的客户:HAVING COUNT(*) >= 3
内容的提问来源于stack exchange,提问作者Ak G
相关产品推荐
相关产品推荐

