Sql 查询以查找至少第五名受薪员工

Sql 查询以查找至少第五名受薪员工,sql,oracle,greatest-n-per-group,Sql,Oracle,Greatest N Per Group,a) 写一个查询,从中查找至少第五名(第五名职位的最低工资) 订单中最低工资)受薪员工 b) 查询以查找每个部门中收入最高的员工a)编写一个查询以查找至少第五名(从订单中的最低工资中查找第五名职位的最低工资)受薪员工? EMPID NAME DEPTID SALARY ---------- ------------------------------------------ -- 101 surendra 201 1000 102 narendra 202 2000 103 rajesh 203

a) 写一个查询,从中查找至少第五名(第五名职位的最低工资) 订单中最低工资)受薪员工

b) 查询以查找每个部门中收入最高的员工

a)编写一个查询以查找至少第五名(从订单中的最低工资中查找第五名职位的最低工资)受薪员工?

EMPID NAME DEPTID SALARY
---------- ------------------------------------------ --
101 surendra 201 1000
102 narendra 202 2000
103 rajesh 203 3000
104 ramesh 203 2000
105 hanumanth 202 10000
b)查询以查找每个部门收入最高的员工

SELECT EMPID,NAME,DEPTID,SALARY
FROM
(
SELECT EMPID,NAME,DEPTID,SALARY, DENSE_RANK() OVER (ORDER BY SALARY) AS RN
FROM Table1
) 
WHERE RN=5
演示


假设我们有一个名为
EmployeeSalary
的表,它有3列:

  • 身份证
  • 名字
  • 薪水
  • 根据下表数据,多个员工的薪资可能相同

    SELECT EMPID,NAME,DEPTID,SALARY
    FROM
    (
    SELECT EMPID,NAME,DEPTID,SALARY, 
      DENSE_RANK() OVER (PARTITION BY DEPTID ORDER BY SALARY DESC) AS RN
    FROM Table1
    )
    WHERE RN=1
    
    现在查询将是

    Id  Name    Salary
    ----------
    6   Belalo  74
    1   Karim   100
    5   dIPU    100
    4   Satter  102
    9   Kiron   120
    10  Rash    120
    11  Harun   130
    13  Baki    130
    12  Munshi  132
    2   Rahim   500
    7   Kaif    987
    8   Sony    987
    3   Belal   4000
    

    看,你试过什么了吗?这闻起来像是家庭作业。有点像@Tim Biegeleisaen…但我不明白这是无效的(标准)SQL,不能在Oracle上工作。它在SQL Server上对我很好。问题是关于Oracle,而不是SQL Server
    SELECT A.Salary
    FROM
    (
    SELECT DISTINCT Salary, 
    DENSE_RANK() OVER (ORDER BY Salary) AS Ranks
    FROM [dbo].[EmployeeSalary]
    ) A 
    WHERE A.Ranks=5