【字节跳动】计算每个订单的总价
JOIN 连接聚合函数GROUP BYORDER BY营收统计面试真题
题目描述
来源:字节跳动 SQL 面试真题
电商平台有顾客、订单和订单明细三张表,需要统计每个订单的总价,并按顾客姓名、订单号升序返回。
数据表
Customers 顾客表
| 字段 | 类型 | 说明 |
|---|---|---|
| cust_id | VARCHAR(32) | 顾客 ID,主键 |
| cust_name | VARCHAR(100) | 顾客名称 |
Orders 订单表
| 字段 | 类型 | 说明 |
|---|---|---|
| order_num | VARCHAR(32) | 订单号,主键 |
| cust_id | VARCHAR(32) | 顾客 ID |
OrderItems 订单明细表
| 字段 | 类型 | 说明 |
|---|---|---|
| order_num | VARCHAR(32) | 订单号 |
| quantity | INT | 商品数量 |
| item_price | DECIMAL(10, 2) | 商品单价 |
总价口径
- 一条订单可以对应多条明细记录。
- 订单总价
OrderTotal=SUM(quantity * item_price)。 - 只输出能关联到顾客和订单明细的有效订单。
- 按顾客名称升序、订单号升序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| cust_name | 顾客名称 |
| order_num | 订单号 |
| OrderTotal | 订单总价 |
数据样例
| cust_idPKVARCHAR(32) | cust_nameVARCHAR(100) |
|---|---|
| cust10 | andy |
| cust1 | ben |
| cust2 | tony |
| cust22 | tom |
| cust221 | an |
| cust2217 | hex |
输入数据显示 6 / 6 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里