【阿里巴巴】统计各城市用户订单总金额
JOIN 连接聚合函数GROUP BYCASE WHENORDER BY营收统计面试真题
题目描述
来源:阿里巴巴 SQL 面试真题
电商平台有订单信息表 orders 和顾客信息表 customers,请统计每个城市用户的订单总金额。
数据表
orders 订单表
| 字段 | 类型 | 说明 |
|---|---|---|
| order_id | BIGINT | 订单唯一标识符,主键 |
| customer_id | BIGINT | 顾客唯一标识符 |
| order_date | DATE | 订单日期 |
| total_amount | DECIMAL(12, 2) | 订单总金额 |
customers 顾客表
| 字段 | 类型 | 说明 |
|---|---|---|
| customer_id | BIGINT | 顾客唯一标识符,主键 |
| customer_name | VARCHAR(100) | 顾客姓名 |
| city | VARCHAR(100) | 顾客所在城市 |
统计口径
- 按
customer_id将订单与顾客关联到所在城市。 - 按城市分组,将该城市用户的所有订单
total_amount汇总。 - 没有订单的城市也输出,订单总金额记为 0。
- 结果按订单总金额降序排列;金额相同时按城市名称升序排列。
期望输出列
| 列名 | 说明 |
|---|---|
| city | 城市名称 |
| total_order_amount | 该城市用户的订单总金额 |
数据样例
| customer_idPKBIGINT | customer_nameVARCHAR(100) | cityVARCHAR(100) |
|---|---|---|
| 101 | Alice | 北京 |
| 102 | Bob | 北京 |
| 103 | Carol | 上海 |
| 104 | David | 广州 |
| 105 | Eva | 上海 |
| 106 | Frank | 深圳 |
输入数据显示 6 / 6 行
SQL 编辑器正在保存草稿...
Ctrl + Enter 运行
正在加载 SQL 编辑器...
运行你的 SQL 查询后,结果将显示在这里