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

SQL分组查询:如何按季度获取最佳销售人员及对应销售额?

按季度获取最高销售额销售人员的SQL解决方案

原SQL报错原因:GROUP BY子句仅指定了Quarter,但SELECT中包含非聚合列Salesperson,数据库无法确定该列应取哪个值(同一季度可能对应多个销售人员),因此触发语法错误。以下是两种可行的实现方案:

方案一:使用窗口函数(推荐)

利用ROW_NUMBER()(或RANK()/DENSE_RANK())按季度分区并按销售额降序排名,筛选出每个季度排名第一的记录:

WITH t1 AS (
    -- 此处替换为你生成t1的原始WITH子句逻辑
    -- 示例:SELECT Salesperson, Quarter, SUM(SaleAmount) AS Sales FROM SalesRecords GROUP BY Salesperson, Quarter
)
SELECT Quarter, Sales, Salesperson
FROM (
    SELECT 
        Quarter, 
        Sales, 
        Salesperson,
        -- 按季度分区,销售额降序排序,生成排名
        ROW_NUMBER() OVER (PARTITION BY Quarter ORDER BY Sales DESC) AS rank_num
    FROM t1
) ranked_t1
WHERE rank_num = 1;
  • 若存在多名销售人员同季度销售额并列最高的场景,可将ROW_NUMBER()替换为RANK()或DENSE_RANK(),这样会返回所有并列最高的记录。

方案二:关联子查询

通过子查询获取每个季度的最高销售额,再关联原表匹配对应销售人员:

WITH t1 AS (
    -- 此处替换为你生成t1的原始WITH子句逻辑
)
SELECT t.Quarter, t.Sales, t.Salesperson
FROM t1 t
WHERE t.Sales = (
    SELECT MAX(Sales)
    FROM t1
    WHERE Quarter = t.Quarter
);
  • 该方案会直接返回所有同季度销售额等于最高值的销售人员,无需额外处理排名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:39:58