【阿里巴巴】统计商品二季度销售排名与供应商
JOIN 连接聚合函数GROUP BY窗口函数日期函数ORDER BY营收统计排行榜面试真题
题目描述
来源:阿里巴巴 SQL 面试真题
电商平台需要分析每个商品在 2024 年第二季度的销售情况,并查看商品在所属类别中的销售排名以及供应商信息。
数据表
product_info 商品信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| product_id | INT | 商品 ID,主键 |
| product_name | VARCHAR(100) | 商品名称 |
| category | VARCHAR(50) | 商品类别 |
order_info 订单信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| order_id | BIGINT | 订单 ID,主键 |
| product_id | INT | 商品 ID |
| order_date | DATE | 下单日期 |
| total_amount | DECIMAL(10,2) | 订单总额 |
supplier_info 供应商信息表
| 字段 | 类型 | 说明 |
|---|---|---|
| supplier_id | INT | 供应商 ID,主键 |
| product_id | INT | 商品 ID |
| supplier_name | VARCHAR(100) | 供应商名称 |
统计口径
- 2024 年第二季度为 2024-04-01 至 2024-06-30,使用左闭右开条件过滤为 [2024-04-01, 2024-07-01)。
- 每个商品的季度销售总额为该商品第二季度订单 total_amount 的总和。
- 第二季度没有订单的商品销售总额按 0 处理,并继续参与所属类别排名。
- 使用 RANK() 按类别内销售总额降序排名,销售总额相同时并列。
- 题目按一个商品对应一个所属供应商处理;供应商信息缺失时仍保留商品,supplier_name 为 NULL。
期望输出列
| 列名 | 说明 |
|---|---|
| product_id | 商品 ID |
| product_name | 商品名称 |
| q2_2024_sales_total | 2024 年第二季度销售总额 |
| category_rank | 商品在所属类别内的销售排名 |
| supplier_name | 所属供应商名称 |
数据样例
| product_idPKINT | product_nameVARCHAR(100) | categoryVARCHAR(50) |
|---|---|---|
| 1 | 智能手机 | 电子 |
| 2 | 笔记本电脑 | 电子 |
| 3 | 运动外套 | 服装 |
| 4 | 无线耳机 | 电子 |
| 5 | 客厅沙发 | 家居 |
| 6 | 平板电脑 | 电子 |
输入数据显示 6 / 6 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里