SQL 刷题/【携程】生成商品类别内销售排行榜
上一题下一题中等通过率 100%

【携程】生成商品类别内销售排行榜

JOIN 连接聚合函数GROUP BY窗口函数ORDER BY排行榜面试真题

题目描述

来源:携程 SQL 面试真题

某电商平台需要生成商品销售排行榜,统计每个商品的销售总量,并计算商品在所属类别内的销量排名。

数据表

products 商品表

字段类型说明
product_idBIGINT商品编号
nameVARCHAR商品名称
categoryVARCHAR商品类别

orders 订单表

字段类型说明
order_idBIGINT订单编号
product_idBIGINT商品编号
quantityINT本次订单的销售数量
order_dateDATE下单日期

题目要求

  • 统计每个商品在全部订单中的销售总量。
  • 没有订单的商品也需要保留,销售总量记为 0。
  • 在每个商品类别内,按照销售总量降序计算排名。
  • 销售总量相同的商品并列排名,并按 product_id 升序稳定展示。
  • 最终先按商品类别升序,再按销售总量降序,最后按 product_id 升序排列。

期望输出列

列名说明
product_name商品名称
total_sales商品销售总量
category_rank商品在所属类别内的销量排名

数据样例

当前运行环境
product_idPKBIGINTnameVARCHAR(100)categoryVARCHAR(50)
1Product ACategory 1
2Product BCategory 1
3Product CCategory 2
4Product DCategory 2
5Product ECategory 3
输入数据显示 5 / 5
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

运行你的 SQL 查询后,结果将显示在这里