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

如何通过Nested Subquery获取薪资总和最高的球队及对应薪资

解决方法:用嵌套子查询显示薪资总和最高的球队

要同时输出球队名称和对应的最高薪资总和,你需要先计算每个球队的薪资总和,再筛选出总和等于最大值的记录,以下是两种基于嵌套子查询的可行写法:

写法一:使用HAVING子句配合嵌套子查询

SELECT t.name, SUM(p.salary) AS total_salary
FROM teams t 
JOIN playersalary p ON t.id = p.team_id
GROUP BY t.name
HAVING SUM(p.salary) = (
    -- 先计算所有球队的薪资总和,再取其中的最大值
    SELECT MAX(total_salary)
    FROM (
        SELECT SUM(salary) AS total_salary
        FROM playersalary
        GROUP BY team_id
    ) AS team_salaries
);

写法二:先生成球队总薪资临时表,再筛选最大值

SELECT name, total_salary
FROM (
    -- 第一步:计算每个球队的名称和薪资总和
    SELECT t.name, SUM(p.salary) AS total_salary
    FROM teams t 
    JOIN playersalary p ON t.id = p.team_id
    GROUP BY t.name
) AS team_total_salaries
WHERE total_salary = (
    -- 第二步:计算所有球队薪资总和的最大值
    SELECT MAX(total_salary)
    FROM (
        SELECT SUM(salary) AS total_salary
        FROM playersalary
        GROUP BY team_id
    ) AS max_salary_calc
);

原语句问题分析

  • 语句1:仅通过MAX(SUM(salary))拿到了最高薪资总和的数值,但由于GROUP BY name会返回所有球队的分组结果,无法直接将最大值与对应球队名称关联,因此无法输出球队名。
  • 语句2:错误地以单个球员的最高薪资为筛选条件,没有按球队分组计算薪资总和,完全偏离了“薪资总和最高球队”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:15:56