gpt4 book ai didi

mysql - 选择列中的第 n 个最大值,如果不存在则为 null

转载 作者:行者123 更新时间:2023-12-01 09:53:10 25 4
gpt4 key购买 nike

我正在尝试解决 LeetCode 问题 https://leetcode.com/problems/second-highest-salary/description/ ;到目前为止我的解决方案(另见 http://sqlfiddle.com/#!9/4752cb/1 )是:

SELECT Salary AS SecondHighestSalary 
FROM Employee
ORDER BY Salary DESC LIMIT 1, 1;

问题是我的解决方案在以下测试用例中失败:

enter image description here

换句话说,它只是不返回结果而不是返回 NULL 。如果没有第二高的薪水,我怎样才能让它返回 NULL

更新

Return a value if no record is found 之后,我尝试将查询封装在子查询中:
SELECT (SELECT Salary 
FROM Employee
ORDER BY Salary DESC LIMIT 1, 1) AS SecondHighestSalary;

但是,这在不同的测试用例中失败了,其中有两名员工的薪水相同:

enter image description here

在这种情况下,我们显然也应该返回 NULL 。我如何调整上面的“更接近解决方案”查询来处理这个问题?

最佳答案

这里的 OFFSET 1 表示没有第一个(例如:如果你不想显示第一个 2 那么 OFFSET 将是 2)

SELECT
Salary AS SecondHighestSalary
FROM
Employee

ORDER BY
Salary

LIMIT 1 OFFSET 1;

关于mysql - 选择列中的第 n 个最大值,如果不存在则为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47148094/

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