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

如何查询DIPENDENTI表中对应岗位最低工资的员工姓名?

按岗位查询最低工资员工姓名的SQL方案

嘿,我来帮你搞定这个问题!你需要从DIPENDENTI表中找出每个岗位(MANSIONE)里拿最低工资的员工姓名(NOME_IMP)对吧?下面给你两种实用的SQL写法,适配不同的数据库场景:

方法一:关联子查询(兼容性强,适合所有主流数据库)

这种方法先算出每个岗位的最低工资,再和原表匹配找到对应员工:

SELECT d.NOME_IMP, d.MANSIONE, d.STIPENDIO
FROM DIPENDENTI d
INNER JOIN (
    -- 子查询:按岗位分组,计算每个岗位的最低工资
    SELECT MANSIONE, MIN(STIPENDIO) AS MIN_STIPENDIO
    FROM DIPENDENTI
    GROUP BY MANSIONE
) m ON d.MANSIONE = m.MANSIONE AND d.STIPENDIO = m.MIN_STIPENDIO;

说明:如果同一个岗位有多个员工拿相同的最低工资,他们都会被查询出来,这符合大多数场景的需求。

方法二:窗口函数(适合支持SQL:2003及以上的数据库,比如MySQL 8+、PostgreSQL、Oracle)

如果你用的数据库支持窗口函数,这种写法更简洁灵活:

SELECT NOME_IMP, MANSIONE, STIPENDIO
FROM (
    SELECT 
        NOME_IMP, 
        MANSIONE, 
        STIPENDIO,
        -- 按岗位分区,按工资升序排名,最低工资的员工排名为1
        RANK() OVER (PARTITION BY MANSIONE ORDER BY STIPENDIO ASC) AS rank_num
    FROM DIPENDENTI
) ranked
WHERE rank_num = 1;

小提示:这里用RANK()而不是ROW_NUMBER()是因为如果同一岗位有多人工资相同且都是最低,RANK()会把他们都标记为排名1,而ROW_NUMBER()会随机给他们分配不同排名,只返回一个。你可以根据实际需求调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:31:38