最近做了oppo的24年春招题,题目如下: alt alt

题目分析

本题要求统计各产品线在不同销售渠道的销售总额和销售数量。
输出字段

  • product_line(产品线)
  • region(地区)
  • channel_name(渠道名称)
  • total_sale_amount(销售总额)
  • total_sale_quantity(销售数量)

输出顺序

  • 先按产品线升序(product_line)
  • 再按渠道ID升序(sd.channel_id)

涉及知识点

  • SQL 多表连接(JOIN)
  • 分组聚合(SUM、COUNT、GROUP BY)
  • 字段别名与排序(ORDER BY)

解答步骤

1. 关联销售数据、销售渠道和产品信息

  • sales_data 销售数据表与 sales_channels 销售渠道表通过渠道ID连接,获取渠道信息。
  • 再与 oppo_products 产品表通过产品ID连接,获取产品线信息。
from sales_data sd
join sales_channels sc on sc.channel_id = sd.channel_id 
join oppo_products o on o.product_id = sd.product_id

2. 按渠道和产品线分组统计

  • 按渠道ID、产品线、地区、渠道名称分组,统计:
    • 销售总额:sum(sale_amount)
    • 销售数量:count(*)
group by sd.channel_id, o.product_line, sc.region, sc.channel_name

3. 排序输出

  • 按产品线升序、渠道ID升序排序。
order by product_line, sd.channel_id

完整代码

select o.product_line, sc.region, sc.channel_name,
sum(sale_amount) as total_sale_amount,
count(*) as total_sale_quantity
from sales_data sd
join sales_channels sc on sc.channel_id = sd.channel_id 
join oppo_products o on o.product_id = sd.product_id 
group by sd.channel_id, o.product_line, sc.region, sc.channel_name
order by product_line, sd.channel_id

近似题目练习推荐

深入分析各款产品年总销售额与竞品的年度对比

  • 知识点:多表连接、分组聚合、JOIN

如需更多类似题目,可在牛客网SQL练习区进行练习。