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

如何用单条SQL同时查询全表最高薪资和各人员最高薪资

解法1:结果同屏展示「每个姓名对应的最高薪资+全表最高薪资」(每行都携带全表最高值)

支持窗口函数的数据库(MySQL 8.0+、PostgreSQL、SQL Server等主流新版数据库都兼容)可以直接用窗口函数实现:

SELECT 
  DISTINCT Name,
  MAX(Salary) OVER (PARTITION BY Name) AS max_salary_per_name,
  MAX(Salary) OVER () AS max_salary_global
FROM your_table_name;

你的示例表运行后输出结果如下:

Namemax_salary_per_namemax_salary_global
A50005000
B40005000
C50005000

解法2:合并两条查询的结果集(先输出全表最高、再输出各姓名最高)

如果需要完全对齐原来两条查询的输出形式,或是使用不支持窗口函数的旧版数据库,可以用UNION ALL拼接结果,全版本数据库兼容:

-- 第一部分:查询全表最高薪资,用固定标识区分行类型
SELECT '全局最高' AS Name, MAX(Salary) AS max_salary FROM your_table_name
UNION ALL
-- 第二部分:查询每个姓名对应的最高薪资
SELECT Name, MAX(Salary) AS max_salary FROM your_table_name GROUP BY Name;

你的示例表运行后输出结果如下:

Namemax_salary
全局最高5000
A5000
B4000
C5000

将代码中的your_table_name替换为实际表名即可直接运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 13:30:04