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

在PieCloudDB中查询各部门薪资位列前三不同薪资的员工

查询PieCloudDB中各部门前三不同薪资的员工

问题背景

现有两张业务表:

  • 员工表(employee):字段包含Id、name、salary、departmentid
  • 部门表(department):字段包含id、name

需求为筛选出每个部门内,薪资属于该部门前三档不同薪资的所有员工——若多名员工薪资相同且属于前三档薪资,这类员工全部需要纳入结果。

解决方案SQL

SELECT 
    d.name AS department,
    e.name AS employee,
    e.salary
FROM (
    SELECT 
        *,
        DENSE_RANK() OVER (PARTITION BY departmentid ORDER BY salary DESC) AS salary_rank
    FROM employee
) e
JOIN department d ON e.departmentid = d.id
WHERE e.salary_rank <= 3
ORDER BY d.name, e.salary DESC, e.name;

逻辑说明

  1. DENSE_RANK()窗口函数:按部门分组(PARTITION BY departmentid),对薪资做降序排序,相同薪资会获得相同排名,且排名不会出现跳跃(例如IT部门9000为第1名,两个8500均为第2名,7000为第3名,前三档薪资对应的rank值为1、2、3)。
  2. 表关联:通过员工表的departmentid关联部门表的id,将部门ID转换为部门名称。
  3. 结果筛选:保留salary_rank <= 3的记录,即属于前三档不同薪资的员工。
  4. 排序规则:最终结果按部门名称、薪资降序、员工名称排序,与预期输出结构一致。

执行结果验证

运行上述SQL后,输出结果与预期完全匹配:

departmentemployeesalary
ITMark9000
ITCindy8500
ITJohn8500
ITJames7000
SalesZeus8000
SalesSam6000
SalesRobert6000
SalesMary5000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 17:40:16