【阿里巴巴】统计商家销售退款与满意度
JOIN 连接聚合函数GROUP BYORDER BY营收统计面试真题
题目描述
来源:阿里巴巴 SQL 面试真题
电商平台需要综合评估商家的销售业绩、退款情况和客户满意度,请统计每个商家的总销售金额、总退款金额和平均满意度得分。
数据表
merchants_underline 商家表
| 字段 | 类型 | 说明 |
|---|---|---|
| merchant_id | INT | 商家 ID,主键 |
| merchant_name | VARCHAR(50) | 商家名称 |
| industry | VARCHAR(20) | 所属行业 |
sales_underline 销售表
| 字段 | 类型 | 说明 |
|---|---|---|
| sale_id | INT | 销售记录 ID,主键 |
| merchant_id | INT | 商家 ID |
| sale_amount | DECIMAL(10,2) | 销售金额 |
refunds_underline 退款表
| 字段 | 类型 | 说明 |
|---|---|---|
| refund_id | INT | 退款记录 ID,主键 |
| merchant_id | INT | 商家 ID |
| refund_amount | DECIMAL(10,2) | 退款金额 |
satisfaction_underline 满意度表
| 字段 | 类型 | 说明 |
|---|---|---|
| satisfaction_id | INT | 满意度记录 ID,主键 |
| merchant_id | INT | 商家 ID |
| satisfaction_score | INT | 满意度得分,范围 1~100 |
统计口径
- 总销售金额为该商家 sales_underline.sale_amount 的总和。
- 总退款金额为该商家 refunds_underline.refund_amount 的总和。
- 平均满意度得分为该商家 satisfaction_score 的算术平均值,四舍五入保留 2 位小数。
- 没有销售或退款记录的商家对应金额按 0 处理;没有满意度记录的商家平均满意度按 0 处理。
- 结果按 merchant_id 升序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| merchant_id | 商家 ID |
| merchant_name | 商家名称 |
| total_sales_amount | 总销售金额 |
| total_refund_amount | 总退款金额 |
| average_satisfaction_score | 平均满意度得分 |
数据样例
| merchant_idPKINT | merchant_nameVARCHAR(50) | industryVARCHAR(20) |
|---|---|---|
| 1 | 星河数码 | 电子 |
| 2 | 云端服饰 | 服装 |
| 3 | 木棉家居 | 家居 |
| 4 | 初见食品 | 食品 |
输入数据显示 4 / 4 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里