第二高的薪水:为什么最简单的SQL查询往往是最聪明的

发布: (2026年1月13日 GMT+8 17:51)
1 min read
原文: Dev.to

Source: Dev.to

问题描述与示例数据

我们有一张 employee 表:

idnamesalarydepartment_id
1Ivan1000.12341
2Anna1500.12341
3Oleg2200.12342
4Maria2200.12342
5David2000.56782

期望结果: 2000.5678

问题陈述:employee 表中找出第二高的不同工资

关键要求: 如果不同工资的种类少于两个(例如所有员工工资相同),则返回 NULL

这里指的不是“第二行”,而是第二高的不同

三种常见解法对比

方法 1:MAX() + 子查询

SELECT MAX(salary)
FROM employee
WHERE salary
Back to Blog

相关文章

阅读更多 »

如何解答 LeetCode 1193

问题描述 表 Transactions 具有以下列: - id 主键 - country - state 枚举:'approved' 或 'declined' - amount - trans...

数据库事务泄漏

介绍 我们经常谈论 memory leaks,但在 backend development 中还有另一个沉默的性能杀手:Database Transaction Leaks。我最近…