最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL實(shí)現(xiàn)LeetCode(177.第N高薪水)

 更新時(shí)間:2021年08月03日 15:10:01   作者:Grandyang  
這篇文章主要介紹了SQL實(shí)現(xiàn)LeetCode(177.第N高薪水),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

[LeetCode] 177.Nth Highest Salary 第N高薪水

Write a SQL query to get the nth highest salary from the Employee table.

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

For example, given the above Employee table, the nth highest salary where n = 2 is 200. If there is no nth highest salary, then the query should return null.

這道題是之前那道Second Highest Salary的拓展,根據(jù)之前那道題的做法,我們可以很容易的將其推展為N,根據(jù)對(duì)Second Highest Salary中解法一的分析,我們只需要將OFFSET后面的1改為N-1就行了,但是這樣MySQL會(huì)報(bào)錯(cuò),估計(jì)不支持運(yùn)算,那么我們可以在前面加一個(gè)SET N = N - 1,將N先變成N-1再做也是一樣的:

解法一:

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  SET N = N - 1;
  RETURN (
      SELECT DISTINCT Salary FROM Employee GROUP BY Salary
      ORDER BY Salary DESC LIMIT 1 OFFSET N
  );
END

根據(jù)對(duì)Second Highest Salary中解法四的分析,我們只需要將其1改為N-1即可,這里卻支持N-1的計(jì)算,參見代碼如下:

解法二:

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  RETURN (
      SELECT MAX(Salary) FROM Employee E1
      WHERE N - 1 =
      (SELECT COUNT(DISTINCT(E2.Salary)) FROM Employee E2
      WHERE E2.Salary > E1.Salary)
  );
END

當(dāng)然我們也可以通過將最后的>改為>=,這樣我們就可以將N-1換成N了:

解法三:

CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
  RETURN (
      SELECT MAX(Salary) FROM Employee E1
      WHERE N =
      (SELECT COUNT(DISTINCT(E2.Salary)) FROM Employee E2
      WHERE E2.Salary >= E1.Salary)
  );
END

類似題目:

Second Highest Salary

參考資料:

https://leetcode.com/discuss/88875/simple-answer-with-limit-and-offset

https://leetcode.com/discuss/63183/fastest-solution-without-using-order-declaring-variables

到此這篇關(guān)于SQL實(shí)現(xiàn)LeetCode(177.第N高薪水)的文章就介紹到這了,更多相關(guān)SQL實(shí)現(xiàn)第N高薪水內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySql實(shí)現(xiàn)跨表查詢的方法詳解

    MySql實(shí)現(xiàn)跨表查詢的方法詳解

    本篇文章是對(duì)MySql實(shí)現(xiàn)跨表查詢的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MYSQL必知必會(huì)讀書筆記第七章之?dāng)?shù)據(jù)過濾

    MYSQL必知必會(huì)讀書筆記第七章之?dāng)?shù)據(jù)過濾

    這篇文章主要介紹了MYSQL必知必會(huì)讀書筆記第七章之?dāng)?shù)據(jù)過濾的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • MySQL內(nèi)存使用之線程獨(dú)享介紹

    MySQL內(nèi)存使用之線程獨(dú)享介紹

    這篇文章主要介紹了MySQL內(nèi)存使用之線程獨(dú)享介紹,線程獨(dú)享內(nèi)存主要用于各客戶端連接線程存儲(chǔ)各種操作的獨(dú)享數(shù)據(jù),如線程棧信息,分組排序操作,數(shù)據(jù)讀寫緩沖,結(jié)果集暫存等等,而且大多數(shù)可以通過相關(guān)參數(shù)來(lái)控制內(nèi)存的使用量,需要的朋友可以參考下
    2014-12-12
  • MySQL如何使用union all獲得并集排序

    MySQL如何使用union all獲得并集排序

    這篇文章主要介紹了MySQL如何使用union all獲得并集排序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • mysql 字符串轉(zhuǎn)數(shù)組的實(shí)現(xiàn)示例

    mysql 字符串轉(zhuǎn)數(shù)組的實(shí)現(xiàn)示例

    有時(shí)候,我們需要將一個(gè)字符串拆分成一個(gè)數(shù)組,本文主要介紹了mysql 字符串轉(zhuǎn)數(shù)組的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • SQL UNION運(yùn)算符及其應(yīng)用場(chǎng)景深入探究

    SQL UNION運(yùn)算符及其應(yīng)用場(chǎng)景深入探究

    這篇文章主要為大家介紹了SQL UNION運(yùn)算符及其應(yīng)用場(chǎng)景示例深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • MySQL數(shù)據(jù)備份方法的選擇與思考

    MySQL數(shù)據(jù)備份方法的選擇與思考

    這篇文章主要介紹了MySQL數(shù)據(jù)備份方法該如何選擇,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • mysql獲得60天前unix時(shí)間思路及代碼

    mysql獲得60天前unix時(shí)間思路及代碼

    首先根據(jù)now()獲得當(dāng)前時(shí)間,使用adddate()方法獲得60天前時(shí)間,使用unix_timestamp()方法轉(zhuǎn)換時(shí)間類型
    2014-08-08
  • MySQL8.0.23免安裝版配置詳細(xì)教程

    MySQL8.0.23免安裝版配置詳細(xì)教程

    這篇文章主要介紹了MySQL8.0.23免安裝版配置教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • CentOS 7 安裝Percona Server+Mysql

    CentOS 7 安裝Percona Server+Mysql

    這篇文章主要介紹了CentOS 7 安裝Percona Server+Mysql的相關(guān)資料,需要的朋友可以參考下
    2018-11-11

最新評(píng)論

安化县| 鄂尔多斯市| 莲花县| 翁源县| 阳城县| 文成县| 鄱阳县| 开原市| 寻甸| 修文县| 宁强县| 阳朔县| 莱阳市| 闵行区| 巴青县| 涟水县| 饶阳县| 台前县| 新源县| 保山市| 丰城市| 精河县| 兰西县| 乡城县| 烟台市| 剑川县| 武强县| 盐城市| 扎赉特旗| 社旗县| 林周县| 甘谷县| 怀安县| 奈曼旗| 漠河县| 临海市| 黎川县| 青阳县| 泸溪县| 泸州市| 湖南省|