表:Salesperson
+----------------+---------+
| Column Name | Type |
+----------------+---------+
| salesperson_id | int |
| name | varchar |
+----------------+---------+
sales_person_id 是这个表的主键。
这个表中的每一行都显示一个销售人员的 ID。
表:Customer
+----------------+------+
| Column Name | Type |
+----------------+------+
| customer_id | int |
| salesperson_id | int |
+----------------+------+
customer_id 是这个表的主键。
salesperson_id 是一个来自于 Salesperson 表的外键
Customer 表中的每一行都显示了一个客户的 ID 和销售人员的 ID。
表:Sales
+-------------+------+
| Column Name | Type |
+-------------+------+
| sale_id | int |
| customer_id | int |
| price | int |
+-------------+------+
sale_id 是这个表的主键。
customer_id 是一个来自于 Customer 表的外键。
Sales 表中的每一行都显示了一个客户的 ID 以及他们在 sale_id 指代的交易中所支付的金额。
编写一个 SQL 查询用来报告每个销售人员的客户所支付的价格总和。如果销售人员没有任何客户,则总值应该为 0 。
以 任意顺序 返回结果表。
查询结果格式如下所示。
示例 1:
输入:
Salesperson 表:
+----------------+-------+
| salesperson_id | name |
+----------------+-------+
| 1 | Alice |
| 2 | Bob |
| 3 | Jerry |
+----------------+-------+
Customer 表:
+-------------+----------------+
| customer_id | salesperson_id |
+-------------+----------------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
+-------------+----------------+
Sales 表:
+---------+-------------+-------+
| sale_id | customer_id | price |
+---------+-------------+-------+
| 1 | 2 | 892 |
| 2 | 1 | 354 |
| 3 | 3 | 988 |
| 4 | 3 | 856 |
+---------+-------------+-------+
输出:
+----------------+-------+-------+
| salesperson_id | name | total |
+----------------+-------+-------+
| 1 | Alice | 1246 |
| 2 | Bob | 1844 |
| 3 | Jerry | 0 |
+----------------+-------+-------+
解释:
Alice 是客户 1 和客户 2 的销售人员。
- 客户 1 一次购买花费了 354。
- 客户 2 一次购买花费了 892。
Alice 的总数是 354 + 892 = 1246。
Bob 是客户 3 的销售人员。
- 客户 3 一次购买花费了 988,另一次购买花费了 856。
Bob 的总数是 988 + 856 = 1844。
Jerry 没有客户。
Jerry 的总数是 0。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/calculate-the-influence-of-each-salesperson
复制
#测试数据
Create table If Not Exists Salesperson (salesperson_id int, name varchar(30));
Create table If Not Exists Customer (customer_id int, salesperson_id int);
Create table If Not Exists Sales (sale_id int, customer_id int, price int);
insert into Salesperson (salesperson_id, name) values ('1', 'Alice');
insert into Salesperson (salesperson_id, name) values ('2', 'Bob');
insert into Salesperson (salesperson_id, name) values ('3', 'Jerry');
insert into Customer (customer_id, salesperson_id) values ('1', '1');
insert into Customer (customer_id, salesperson_id) values ('2', '1');
insert into Customer (customer_id, salesperson_id) values ('3', '2');
insert into Sales (sale_id, customer_id, price) values ('1', '2', '892');
insert into Sales (sale_id, customer_id, price) values ('2', '1', '354');
insert into Sales (sale_id, customer_id, price) values ('3', '3', '988');
insert into Sales (sale_id, customer_id, price) values ('4', '3', '856');
复制
select
a.salesperson_id,
a.name,
coalesce(sum(c.price),0) total
from Salesperson a
left join Customer b
on a.salesperson_id = b.salesperson_id
left join Sales c
on b.customer_id = c.customer_id
group by a.salesperson_id;
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
538次阅读
2025-04-17 17:02:24
SQL优化 - explain查看SQL执行计划(下)
金同学
301次阅读
2025-05-06 14:40:00
SQL 优化之 OR 子句改写
xiongcc
152次阅读
2025-04-21 00:08:06
奖项揭晓!SQL 挑战赛第三期已结束
墨天轮福利君
143次阅读
2025-05-15 17:30:07
“G”术时刻:资深工程师揭秘GBase数据库Hint核心技巧 实现SQL性能跃升
GBASE数据库
124次阅读
2025-04-25 10:10:28
2025 年 SQL IDE 大揭秘:全面解析主流工具的优劣与选择之道
K.
68次阅读
2025-04-21 00:34:18
不懂SQL?用MCP+AI,一句话搞定MySQL查询
MySQL数据库联盟
67次阅读
2025-05-09 10:07:57
轻松上手 SQLynx:以 MySQL 为基础的安装与使用指南
K.
64次阅读
2025-04-21 00:32:59
用 DeepSeek 识别分析“TOP SQL”
韩锋频道
60次阅读
2025-04-29 10:35:53
SQL2API 核心理念:如何重构数据服务交付范式
K.
48次阅读
2025-04-21 00:43:19