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

如何关联Product与OrderItems表按总销量降序查询畅销商品

解决畅销商品汇总排序问题

要实现按productId的总销量降序查询畅销商品,忽略size和color字段,你需要先对OrderItems表按productId分组汇总销量,再关联Product表获取商品信息,具体SQL如下:

SELECT 
    p.productId,
    p.name,
    oi.total_quantity
FROM Product p
INNER JOIN (
    -- 按productId汇总每个商品的总销量
    SELECT 
        productId,
        SUM(quantity) AS total_quantity
    FROM OrderItems
    GROUP BY productId
) oi ON p.productId = oi.productId
-- 按总销量降序排列,得到期望的3、2、1顺序
ORDER BY oi.total_quantity DESC;

关键说明:

  • 子查询部分先对OrderItems按productId分组,用SUM(quantity)计算每个商品的总销量,这一步直接忽略了size和color的影响
  • 关联Product表时只需要匹配productId即可,不需要再关联size和color,避免了不必要的规格过滤
  • 最后通过ORDER BY oi.total_quantity DESC实现按总销量降序,就能得到你想要的productId 3、2、1的输出顺序

你原来的SQL问题在于没有做分组汇总,且错误地通过size和color关联导致无法合并同一商品不同规格的销量,上面的写法完美解决了这两个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:40:26