摘要:
数据库TopK问题,各种情况和对应方法。
题目
单表查询
1 | CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT |
将所有数据按照salary分组,并按照salary由高到低排序。
再选取一条数据。
又因为我们需要从最高开始第 $N$ 高数据,根据 offset
使用规则,需要偏移 $N - 1$ 位。
因为 offset
后面不能跟表达式,只可以跟变量或数字,所以需要提前将 $N$ 设为 $N - 1$.
该方法效率中等。
子查询
1 | CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT |
这个方法目前无法理解,主要是子查询中的 where条件。
原题链接: LeetCode 177. 第N高的薪水