首页 > 数据库 >【从零开始的LeetCode-SQL】177. 第N高的薪水

【从零开始的LeetCode-SQL】177. 第N高的薪水

时间:2024-11-21 11:44:53浏览次数:3  
标签:salary -- Employee +----+--------+ id +------------------------+ SQL 177 LeetCod

表: Employee

+-------------+------+
| Column Name | Type |
+-------------+------+
| id          | int  |
| salary      | int  |
+-------------+------+
在 SQL 中,id 是该表的主键。
该表的每一行都包含有关员工工资的信息。

查询 Employee 表中第 n 高的工资。如果没有第 n 个最高工资,查询结果应该为 null

查询结果格式如下所示。

示例 1:

输入: 
Employee table:
+----+--------+
| id | salary |
+----+--------+
| 1  | 100    |
| 2  | 200    |
| 3  | 300    |
+----+--------+
n = 2
输出: 
+------------------------+
| getNthHighestSalary(2) |
+------------------------+
| 200                    |
+------------------------+

示例 2:

输入: 
Employee 表:
+----+--------+
| id | salary |
+----+--------+
| 1  | 100    |
+----+--------+
n = 2
输出: 
+------------------------+
| getNthHighestSalary(2) |
+------------------------+
| null                   |
+------------------------+

 我的解答:

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  -- 定义整型M
  DECLARE M INT;
  -- 因为返回结果集的索引值从0开始,所以查询第N高对应索引应为索引N-1对应的结果
  SET M = N-1;
  RETURN (
    -- 去重
    SELECT DISTINCT salary 
    FROM Employee
    -- 将去重结果倒序,即从高到低
    ORDER BY salary DESC
    -- 每页1条数据,返回第M页的数据
    LIMIT M,1
  );
END

 

标签:salary,--,Employee,+----+--------+,id,+------------------------+,SQL,177,LeetCod
From: https://blog.csdn.net/qq_40878316/article/details/143939097

相关文章

  • 18、解析1_2(硬解析、共享sql、统计信息影响)
    硬解析清空sharedpool:SQL>altersystemflushshared_pool;Systemaltered.感知硬解析的存在模拟一个硬解析,trace文件具体看递归SQL,以及需要访问的一些字典表查询会话sid、serial#:SQL>selectsidfromv$mystatwhererownum=1;SID----------926......
  • 17、解析1_1(硬解析、软解析、共享sql)
    解析数据文件:1、临时文件2、系统文件(systemfile):(放着字典表,字典表里记录着数据(数据库自身的信息):数据库里有多少表,有多少列,数据库里有多少用户,用户之间的一些权限是什么,数据库有多少对象,对象的名字,还有表和索引的统计信息等等)3、普通文件(放着一张张表)systemfile的存储格式:也......
  • sqlserver显示说明字段
    1.先关闭SQLServer2.运行(Ctrl+R),输入regedit,打开注册表会弹出一下界面 3.直接Ctrl+F搜索DataProject过程会有点慢……4.找到SSVPropViewColumnsSQL70和SSVPropViewColumnsSQL80数字代表的列如下:(1)ColumnName(2)DataType(3)Length(4)Precision(5)Scale(6)AllowNulls(7)Default......
  • QT6.8 编译 MSVC2022-64位MySQL驱动
    QT6.8没有编译MySql驱动,也没有.pro的项目文件,只能自己想办法编译,网上找了很多方法,终于找到了可以成功编译的方法,下面将我的编译过程详细记录如下:[声明:本文为原创,未经允许,不得转载]当前安装情况如下,安装了2个版本的QT:QT6.8msvc2022_64环境 D:\ProgramFiles\Qt\6.8.0\msvc202......
  • MySQL 中常见的几种高可用架构部署方案
    MySQL中的集群部署方案前言这里来聊聊,MySQL中常用的部署方案。MySQLReplicationMySQLReplication 是官方提供的主从同步方案,用于将一个MySQL的实例同步到另一个实例中。Replication为保证数据安全做了重要的保证,是目前运用最广的MySQL容灾方案。Replication用两个......
  • MySQL REPLACE INTO语句
    介绍在向表中插入数据时,我们经常会:首先判断数据是否存在;如果不存在,则插入;如果存在,则更新。但在MySQL中有更简单的方法,replaceinto(insertinto的增强版),当表中的旧行与PRIMARYKEY或UNIQUE索引的新行具有相同的值,则在插入新行之前删除旧行,否则只就新增插入。REPLACE它的......
  • MySQL REPLACE函数:字符串替换
    语法REPLACE(string_expression,string_pattern,string_replacement)替换字符串,接受3个参数,分别是原字符串,被替代字符串,替代字符串。string_expression为搜索的字符串表达式,可以为字符或二进制数据类型。string_pattern为要查找的子字符串,可以为字符或二进制数据类......
  • Mysql 笔记
    ---------------------------作业------------------------------createtablestuinfo(snochar(8)primarykeynotnullcomment'学号',snamechar(10)uniquecomment'姓名',ssexchar(2)default'男');createtablestuc......
  • 基于Java+Springboot+Jpa+Mysql实现的在线网盘文件分享系统功能设计与实现四
    一、前言介绍:免费学习:猿来入此1.1项目摘要在线网盘文件分享系统的课题背景主要源于现代社会对数字化信息存储和共享需求的日益增长。随着互联网的普及和技术的快速发展,人们越来越依赖电子设备来存储和传输各种类型的数据文件。然而,传统的本地存储方式存在诸多不便,如空间有限、......
  • 基于Java+Springboot+Jpa+Mysql实现的在线网盘文件分享系统功能设计与实现三
    一、前言介绍:免费学习:猿来入此1.1项目摘要在线网盘文件分享系统的课题背景主要源于现代社会对数字化信息存储和共享需求的日益增长。随着互联网的普及和技术的快速发展,人们越来越依赖电子设备来存储和传输各种类型的数据文件。然而,传统的本地存储方式存在诸多不便,如空间有限、......