You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中计算指定产品的平均星级评分?

MySQL计算指定产品平均评分实现指南

核心SQL查询

假设你的评分表名为ratings,包含productid(产品ID)和rating(1-5的评分值)字段,直接计算productid=104的平均评分可以用:

SELECT AVG(rating) AS average_rating FROM ratings WHERE productid = 104;

优化:保留小数位数

如果需要更规整的结果(比如保留2位小数),使用ROUND函数:

SELECT ROUND(AVG(rating), 2) AS average_rating FROM ratings WHERE productid = 104;

处理无评分的情况

如果该产品暂无评分,AVG会返回NULL,可以用COALESCE设置默认值(比如0):

SELECT COALESCE(ROUND(AVG(rating), 2), 0) AS average_rating FROM ratings WHERE productid = 104;

扩展:同时统计各星级数量

如果需要获取各星级的投票数(方便后续展示星级分布),可以用条件统计:

SELECT
  COUNT(CASE WHEN rating = 1 THEN 1 END) AS star_1_count,
  COUNT(CASE WHEN rating = 2 THEN 1 END) AS star_2_count,
  COUNT(CASE WHEN rating = 3 THEN 1 END) AS star_3_count,
  COUNT(CASE WHEN rating = 4 THEN 1 END) AS star_4_count,
  COUNT(CASE WHEN rating = 5 THEN 1 END) AS star_5_count,
  ROUND(AVG(rating), 2) AS average_rating
FROM ratings
WHERE productid = 104;

星级展示逻辑提示

拿到平均评分后,展示星级的逻辑一般在应用层实现:

  • 整数部分对应全星数量
  • 小数部分:0.25以下显示空星,0.25-0.75显示半星,0.75以上显示全星(可根据需求调整阈值)

内容的提问来源于stack exchange,提问作者moorad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:27:44