我们有下面的table
person_id | salary
1 | 1500
1 | 1000
1 | 500
2 | 2000
2 | 1000
3 | 3000
3 | 2000
4 | 3000
4 | 1000
我们希望每个人的薪水都是第二高的。按每个人分组,获得第二高的工资。就像下面一样
person_id | salary
1 | 1000
2 | 1000
3 | 2000
4 | 1000
提前感谢:)
5条答案
按热度按时间dgjrabp21#
通过使用聚合函数和self-join,您可以执行以下操作
或者在
sum
```having sum(case when a.salary < b.salary then 1 else 0 end) = 1
nzkunb0c2#
这里有一种方法
exists
以及having
条款62lalag43#
另一种方式
JOIN
.查询
在这里找到一个SQLFiddle演示
ghg1uchk4#
你也可以用
从初始数据集中删除每个人的最高工资,然后重新开始。
093gszye5#
尝试