Change Dir

          先知cd——熱愛生活是一切藝術的開始

          導航

          <2015年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          公告

          寫下來的都是資源,分享給互聯網~~均屬原創隨筆。
          轉載引用請注明作者changedi。
          喜歡應用研究,熱愛編程,歡迎交流。

          隨筆分類(125)

          隨筆檔案(123)

          統計

          留言簿(18)

          積分與排名

          “牛”們的博客

          各個公司技術

          我的鏈接

          淘寶技術

          閱讀排行榜

          評論排行榜

          Leetcode-Database-177-Nth Highest Salary-Medium

          題目地址:https://oj.leetcode.com/problems/nth-highest-salary/

           

          這個題目其實是176的擴展,剛才不是要找第二大的salary嗎,那好,現在直接擴展到任意,第N大,而且這次是要寫一個FunctionN作為參數。表還是之前的Employee表。

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

           

           

           

          我不知道為什么這個題目的通過率那么低,但是事實是使用176題那篇文章的“錯誤”做法即可解掉這個題目。注意limit是從0開始,所以變量要默認自減1

           

          CREATE FUNCTION getNthHighestSalary(N INTRETURNS INT
          BEGIN
              declare n1 int;
              set n1 = N-1;
            RETURN (
                # Write your MySQL query statement below.
                select
                  Salary
                from(
                  select distinct Salary from Employee
                )t
                order by Salary desc
                limit n1,1
               
            );
          END

           

          大寫的部分是題目已經給的框架,我們只需要在Return語句里填寫內容即可,我declare了一個變量,不知道是否是一個hack手段,但是it works.

           

          當然本著在大數據平臺下sql的經驗,如果換做是在hive下寫這個,思路是什么呢?

          1,我建議直接寫一個UDAF解決。

          2,不具備UDAF能力的話,可以在一個key下做sort by后,把他們group_concat或者wm_concat起來,然后getnitem即可,當然這會利用到hive的默認的幾個UDAFUDF

           

          思路肯定有很多,歡迎大家一起來share~

          posted on 2015-01-27 16:59 changedi 閱讀(3384) 評論(1)  編輯  收藏 所屬分類: 數據

          評論

          # re: Leetcode-Database-177-Nth Highest Salary-Medium 2015-01-31 18:00 京山游俠

          mark。  回復  更多評論   

          主站蜘蛛池模板: 广饶县| 阿鲁科尔沁旗| 红桥区| 牙克石市| 东台市| 张掖市| 壶关县| 四会市| 洱源县| 隆化县| 梁河县| 山阳县| 岗巴县| 衢州市| 子洲县| 西吉县| 汪清县| 漳浦县| 四会市| 南漳县| 英德市| 高州市| 广昌县| 晋州市| 大埔县| 莆田市| 九台市| 定兴县| 靖远县| 固始县| 宾川县| 长丰县| 西乌珠穆沁旗| 陇川县| 西藏| 长葛市| 融水| 济南市| 永德县| 三都| 当雄县|