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

基于总销量排序商品并在结果表中展示商品及总销量

商品按总销量排序并同步展示销量的实现方案

SQL 场景示例

假设你有商品表 products(含 product_id、product_name 等字段)和订单商品关联表 order_items(含 product_id、quantity 字段),可以通过聚合查询直接获取结果:

SELECT 
    p.product_id,
    p.product_name,
    p.price,
    SUM(oi.quantity) AS total_sales
FROM products p
JOIN order_items oi ON p.product_id = oi.product_id
GROUP BY p.product_id, p.product_name, p.price
ORDER BY total_sales DESC;

如果要保留无销量的商品,把 JOIN 换成 LEFT JOIN 即可。

编程语言+ORM 场景示例(以 Django 为例)

利用 ORM 的聚合注解功能,直接给商品模型附加销量字段后排序:

from django.db.models import Sum, Coalesce

# 给商品附加总销量字段,无销量时显示0
popular_products = Product.objects.annotate(
    total_sales=Coalesce(Sum('orderitem__quantity'), 0)
).order_by('-total_sales')

# 遍历使用
for item in popular_products:
    print(f"商品:{item.name},总销量:{item.total_sales}")

核心逻辑总结

  • 先通过**聚合函数(SUM/Count)**计算每个商品的总销量
  • 关联商品表保留原有商品字段,将销量作为新字段返回
  • 直接以聚合得到的销量字段作为排序依据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:57:41