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

每个产品的顶级评论客户SQL查询错误排查

问题分析:找出每个产品最高评分客户的SQL错误排查

需求回顾

需要从playground.product_reviews表中查询每个产品对应的:

  • 最高review_score的客户
  • 若评分相同,取helpful_votes最多的客户
    输出列包含product_id、customer_id、review_score、helpful_votes,并按product_id升序排列。

原SQL的错误点

你的SQL存在两个核心问题:

  1. 分区字段错误:PARTITION BY customer_id是按客户分组,但需求是按产品分组(每个产品下找最优记录),应该改为PARTITION BY product_id。
  2. 排序方向错误:order by review_score默认是升序(从小到大),导致最低评分被排为第1位。需要给review_score加上desc,让最高分优先排序。

修正后的SQL

WITH Ordered_Data AS (
    SELECT 
        product_id,
        customer_id,
        review_score,
        helpful_votes,
        RANK() OVER (
            PARTITION BY product_id 
            ORDER BY review_score DESC, helpful_votes DESC
        ) AS r
    FROM playground.product_reviews
) 
SELECT 
    product_id,
    customer_id,
    review_score,
    helpful_votes
FROM Ordered_Data
WHERE r = 1
ORDER BY product_id ASC;

逻辑说明

  • 按product_id分区,确保每个产品单独计算排名
  • 先按review_score降序排序,优先取最高分;评分相同时,按helpful_votes降序取票数最多的记录
  • 用RANK()函数可以处理同分数同票数的并列情况(若需要唯一结果,可改用ROW_NUMBER(),但需额外指定排序字段如review_date)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:02:38