Sql 查询以查找至少第五名受薪员工
a) 写一个查询,从中查找至少第五名(第五名职位的最低工资) 订单中最低工资)受薪员工 b) 查询以查找每个部门中收入最高的员工a)编写一个查询以查找至少第五名(从订单中的最低工资中查找第五名职位的最低工资)受薪员工?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
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