暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

单挑力扣(LeetCode)SQL笔试题:2372. 计算每个销售人员的影响力(难度:中等)

跟强哥学SQL 2023-01-06
144
题目:2372. 计算每个销售人员的影响力
(通过次数402 | 提交次数521,通过率77.16%)
    表: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');
      解题思路:
      这道题涉及的表比较多。
      Salesperson表中保存了所有的销售人员。
      Customer表中保存了所有的客户,以及服务客户的销售人员ID。
      Sales表中保存了所有客户的订单信息,包括订单金额。
      题目要求:计算出每个销售人员的总销售额。
      那么,首先,我们需要知道每个销售人员服务的所有客户。
      然后,通过客户获取客户的所有订单。
      最后,根据销售人员分组汇总统计即可。
      参考SQL:
        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;

        单挑力扣(LeetCode)SQL笔试题:2041. 面试中被录取的候选人(难度:中等)
        单挑力扣(LeetCode)SQL笔试题:2314. 每个城市最高气温的第一天(难度:中等)
        单挑力扣(LeetCode)SQL笔试题:2324. 产品销售分析 IV(难度:中等)

        文章转载自跟强哥学SQL,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论