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

SQL如何查询所有产品名称、平均星级、最新评分日期并按平均评分降序排序

问题分析
  • 你现有查询无法输出正确结果,product表本身没有avg_star_rating(平均星级评分)、recent_rating_date(最新评分日期)字段,两个指标需要关联rating评分表做聚合计算才能得到
  • 所有评分数据存储在rating表中,需要通过公共字段prod_id关联产品表和评分表,按产品维度分组后计算聚合值

注意:你提供的rating表定义中外键引用的表名为Products,和实际存在的product表名大小写不一致,如果你运行SQL时报外键关联错误,需要先修正表结构里的外键引用配置。

正确查询语句
SELECT 
  p.product_name,
  AVG(r.rating_stars) AS avg_star_rating,
  MAX(r.rating_date) AS recent_rating_date
FROM product p
LEFT JOIN rating r 
  ON p.prod_id = r.prod_id
GROUP BY p.prod_id, p.product_name
ORDER BY avg_star_rating DESC;
语句说明
  • 用LEFT JOIN关联产品表和评分表,保证没有任何评分的产品也会出现在结果中,对应的平均星级和最新评分日期会返回NULL;如果不需要展示无评分的产品,可以把LEFT JOIN换成INNER JOIN
  • 用AVG(r.rating_stars)计算每个产品的平均星级评分,MAX(r.rating_date)取每个产品的最新评分日期
  • 按产品主键prod_id和产品名称product_name分组,保证每个产品对应唯一一条结果
  • 最后按照avg_star_rating降序排列,满足你的排序需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:24:03