当前位置: 首页 > news >正文

第N高的薪水

文章目录

  • 题目
  • 作答区
  • 题解

题目

写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。

+----+--------+
| Id | Salary |
+----+--------+
| 1  | 100    |
| 2  | 200    |
| 3  | 300    |
+----+--------+

例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在第 n 高的薪水,那么查询应返回 null。

+------------------------+
| getNthHighestSalary(2) |
+------------------------+
| 200                    |
+------------------------+

作答区

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  RETURN (
      # Write your MySQL query statement below.
      
  );
END

题解

Limit子句可以被用于强制 SELECT 语句返回指定的记录数。Limit接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。

  • 初始记录行的偏移量是 0(而不是 1):
    mysql> SELECT * FROM table LIMIT 5,10; //检索记录行6-15
  • 为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
    mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last
  • 如果只给定一个参数,它表示返回最大的记录行数目。换句话说,LIMIT n 等价于 LIMIT 0,n:
    mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  SET N = N-1;
  RETURN (
      # Write your MySQL query statement below.
      SELECT DISTINCT salary
      FROM employee
      ORDER BY salary DESC
      LIMIT N, 1
  );
END

相关文章:

  • 合并两个有序链表(merge-two-sorted-lists)
  • 移除元素remove-element
  • 删除排序数组中的重复项Remove Duplicates from Sorted Array
  • 字符串转换整数 (string-to-integer-atoi)
  • 最长公共前缀(longest-common-prefix)
  • 罗马数字转整数(roman-to-integer)
  • 删除链表的倒数第N个节点(remove-nth-node-from-end-of-list)
  • 为什么说合数它一定能够被某个素数整除?
  • 实现 strStr()采用kmp算法
  • translate-shell的使用方法
  • ksnapshot使用
  • 报数count-and-say
  • 递归需要遵守的重要规则
  • 组合总和(combination-sum)
  • 组合总和combination-sum
  • 网络传输文件的问题
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2017届校招提前批面试回顾
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • java多线程
  • KMP算法及优化
  • laravel5.5 视图共享数据
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • markdown编辑器简评
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Zepto.js源码学习之二
  • 翻译--Thinking in React
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 给新手的新浪微博 SDK 集成教程【一】
  • 工作手记之html2canvas使用概述
  • 经典排序算法及其 Java 实现
  • 让你的分享飞起来——极光推出社会化分享组件
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 王永庆:技术创新改变教育未来
  • 一些关于Rust在2019年的思考
  • 源码安装memcached和php memcache扩展
  • 再次简单明了总结flex布局,一看就懂...
  • PostgreSQL之连接数修改
  • Spring第一个helloWorld
  • ​2021半年盘点,不想你错过的重磅新书
  • #define
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (2)STM32单片机上位机
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)socket Aio demo
  • (转)大型网站的系统架构
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET HttpWebRequest、WebClient、HttpClient