You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询找出各区域单位销量最高的销售代表?

问题解决:各区域顶级销售代表查询

原问题

给定OrderHistory表结构及数据,忽略日期字段,编写SQL查询找出按单位销量统计的各区域顶级销售代表,预期输出字段:Representative, Region, TotalUnitsSoldByHim

你现有查询的问题

  1. 表名/字段名错误:原数据集表名为OrderHistory,你写的是SALES;销售代表字段是Representative而非Rep,销量字段是UnitSales而非Units
  2. 结果缺失关键信息:仅返回区域和最大销量,未关联到对应的销售代表
  3. 未处理并列情况:如果同区域有多个销售代表总销量并列第一,你的查询无法全部展示

正确解决方案

推荐用窗口函数实现,既简洁又能处理并列顶级的情况:

-- 先计算每个销售代表在所属区域的总销量
WITH RepRegionSales AS (
    SELECT 
        Representative,
        Region,
        SUM(UnitSales) AS TotalUnitsSoldByHim
    FROM OrderHistory
    GROUP BY Region, Representative
),
-- 给每个区域内的销售代表按总销量排名
RankedSales AS (
    SELECT 
        *,
        -- RANK()会让并列第一的销售共享第1名,DENSE_RANK()效果类似
        RANK() OVER(PARTITION BY Region ORDER BY TotalUnitsSoldByHim DESC) AS SalesRank
    FROM RepRegionSales
)
-- 筛选出各区域排名第1的销售代表
SELECT 
    Representative,
    Region,
    TotalUnitsSoldByHim
FROM RankedSales
WHERE SalesRank = 1;

逻辑说明

  1. RepRegionSales:按区域+销售代表分组,统计每个销售在对应区域的总销量
  2. RankedSales:用PARTITION BY Region拆分每个区域,ORDER BY TotalUnitsSoldByHim DESC按总销量降序排名,RANK()保留并列排名
  3. 最后筛选SalesRank = 1的记录,得到各区域的顶级销售(含并列情况)

执行结果

实际运行后会得到:

  • Central区域:Gill(总销量206)
  • East区域:Jones(总销量336)
  • West区域:Sorvino(总销量142)

内容的提问来源于stack exchange,提问作者Nishant Varma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 22:15:24