【发布时间】:2021-01-03 16:04:24
【问题描述】:
我在 MSSQLServer 中创建了下表并插入了更多行。
(
EID int,
ENAME nvarchar(50),
DEPT nvarchar(50),
Salary int
)
GO
Insert into Emp11 values (1, 'A','Dev', 60000)
Insert into Emp11 values (2, 'B','Dev', 60000)
Insert into Emp11 values (3, 'C','Support', 60000)
Insert into Emp11 values (4, 'D','Support', 30000)
Insert into Emp11 values (5, 'E','Reporting', 30000)
Insert into Emp11 values (6, 'F','Reporting', 70000)
Insert into Emp11 values (7, 'G','Reporting', 70000)
Insert into Emp11 values (8, 'H','QA', 70000)
Insert into Emp11 values (9, 'I','QA', 90000)
Insert into Emp11 values (10,'J','QA', 90000
我正在运行这个查询-
select ename, salary, DEPT from(
select *
, row_number() over (partition by DEPT order by salary desc) as rn
from EMP11
)a where rn=1
--Result->
ename salary DEPT
A 60000 Dev
I 90000 QA
F 70000 Reporting
C 60000 Support
如果他们从他们的部门获得与最高薪水相同的薪水,我想获得超过 1 个 ENAME,即:
ENAME salary DEPT
A 60000 Dev
B 60000 Dev
I 90000 QA
J 90000 QA
F 70000 Reporting
G 70000 Reporting
C 60000 Support
【问题讨论】:
标签: sql sql-server sql-server-2008 plsql sql-server-2012