gpt4 book ai didi

sql - 如何在不使用分析功能的情况下明智地获得第二高薪部门?

转载 作者:行者123 更新时间:2023-12-01 13:51:34 24 4
gpt4 key购买 nike

假设每个部门有3名员工。我们共有3个部门。下面是示例源表

Emp deptno salary
A 10 1000
B 10 2000
C 10 3000
D 20 7000
E 20 9000
F 20 8000
G 30 17000
H 30 15000
I 30 30000

输出
B    10     2000
F 20 8000
G 30 17000

通过使用解析函数density_rank,我们可以明智地达到第二高的薪水部门。

我们可以不使用任何分析功能来实现这一点吗?

是Max()也是解析函数吗?

最佳答案

这很痛苦,但是您可以做到。以下查询获得第二高的薪水:

select t.deptno, max(t.salary) as maxs
from table t
where t.salary < (select max(salary)
from table t2
where t2.deptno = t.deptno
)
group by t.deptno;

然后,您可以使用它来获取员工:
select t.*
from table t join
(select t.deptno, max(t.salary) as maxs
from table t
where t.salary < (select max(salary)
from table t2
where t2.deptno = t.deptno
)
group by t.deptno
) tt
on t.deptno = tt.deptno and t.salary = tt.maxs;

关于sql - 如何在不使用分析功能的情况下明智地获得第二高薪部门?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31243365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com