首页 > 作文

数据库学习笔记

更新时间:2023-04-04 04:37:22 阅读: 评论:0

数据库学习笔记-第N高问题

问题解决方案

问题

在一张名为empl故宫失窃oyee的表中,中科大就业有两列数据id和salary,现在要求出第n高的薪水,如果没有第n高的薪水,就返回null。(来源于LeetCode 177. 第N高的薪水)

解决方案

首先,草圣书法家简单地找到所有不重复的薪水,并且从高到低来排序。

SELECT DISTINCT salaryFROM employeeORDER BY salary DESC

之后可以使用limit,设置第一个返回记录的偏移量为n-1,然后指定返回1条记录。(limit和offt字论文第一作者段之后跟着的只能是正整数,所以不能直接使用N-1)

BEGIN  SET  n = N-1;  RETURN (    SELECT DISTINCT salary     FROM employee    ORDER BY salary DESC    LIMIT n,1  ); END;

之后看了一些题解,不禁感叹大家的思路非常开阔,在这里记录下来一些个人觉得有启发性的想法:

排名第N的薪水,其where条件可以是“有n-1个的salary大于它”;mysql 8.0以上的内置函数可以帮助我们解题。如dmissha谜尚en_rank(),它会对查询结果进行排名并生成序号,数值相同的情况下序号相同,且不管有多少个同样的数值,下一个序号都是上一个+1(即rank值紧接上一次的rank值)。den_rank()函数需要与over()配合使用,over()可以接受order by…作为参数。只要找到生成的序号为N的salary即可。

本文地址:https://blog.csdn.net/weixin_42245121/article/details/108579229

本文发布于:2023-04-04 04:37:20,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/be0670b3e83577dca92dd292589e70c3.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:数据库学习笔记.doc

本文 PDF 下载地址:数据库学习笔记.pdf

标签:薪水   序号   数值   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图