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

求各SQL分组内最大值出现次数的最简SQL查询方案

解决方案

表结构

IDPOSITIONEXPERIENCESALARY
1top901500
2bottom1001500
3top90750
4left901000
5right1001300
6top901500
7left802000
8top801000
9bottom1002000
10left1002000

需求

针对上述service表,编写最简SQL查询,按POSITION分组,统计每个分组内薪资最大值的出现次数,输出字段为POSITION和NO_OF_MAXIMUMS(最大值出现次数)。

最简SQL实现

方法1:关联子查询

SELECT 
    POSITION,
    COUNT(*) AS NO_OF_MAXIMUMS
FROM 
    service
WHERE 
    SALARY = (SELECT MAX(SALARY) FROM service s WHERE s.POSITION = service.POSITION)
GROUP BY 
    POSITION;

方法2:窗口函数(性能更优)

如果数据量较大,窗口函数写法的执行效率更高:

SELECT 
    POSITION,
    COUNT(*) AS NO_OF_MAXIMUMS
FROM (
    SELECT 
        POSITION,
        SALARY,
        MAX(SALARY) OVER (PARTITION BY POSITION) AS max_salary
    FROM service
) t
WHERE SALARY = max_salary
GROUP BY POSITION;

预期输出

POSITIONNO_OF_MAXIMUMS
bottom2
left1
right1
top3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:45:46