11/5 Leetcode刷题-SQL

11/5 Leetcode刷题-SQL

No.177 第N高的薪水

在这里插入图片描述

解决方法

思路,把每一个salary,i比它高的都找出来,然后对salary进行分组,组内数据等于N的,就是排名在第N个的。为什么等于N不是N-1,因为选择的时候是salary1<=salary2,所以等于的那个是salary本身。
例如这个表自链接后的结果就是
|100|300|
|100|200|
|100|100|

代码实现:
在这里插入图片描述

No.262 行程和用户

在这里插入图片描述
要求输出:
在这里插入图片描述

思路:首先找出用户没有被banned的,但要注意的是不能使用or语句,因为那样的话,司机与乘客两者之一有一个不为banned的话也不会被发现。所以采用两次链接。

代码实现:
在这里插入图片描述

176.第二高的薪水

在这里插入图片描述

思路:先排序,再找第二高的,用limit,一面显示一个。需要注意的是,有null的情况存在,可以使用上面的ifnull判断。

代码实现:
在这里插入图片描述