Change Dir

          先知cd——熱愛(ài)生活是一切藝術(shù)的開(kāi)始

          統(tǒng)計(jì)

          留言簿(18)

          積分與排名

          “牛”們的博客

          各個(gè)公司技術(shù)

          我的鏈接

          淘寶技術(shù)

          閱讀排行榜

          評(píng)論排行榜

          Leetcode-Database-177-Nth Highest Salary-Medium

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

           

          這個(gè)題目其實(shí)是176的擴(kuò)展,剛才不是要找第二大的salary嗎,那好,現(xiàn)在直接擴(kuò)展到任意,第N大,而且這次是要寫(xiě)一個(gè)FunctionN作為參數(shù)。表還是之前的Employee表。

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

           

           

           

          我不知道為什么這個(gè)題目的通過(guò)率那么低,但是事實(shí)是使用176題那篇文章的“錯(cuò)誤”做法即可解掉這個(gè)題目。注意limit是從0開(kāi)始,所以變量要默認(rèn)自減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

           

          大寫(xiě)的部分是題目已經(jīng)給的框架,我們只需要在Return語(yǔ)句里填寫(xiě)內(nèi)容即可,我declare了一個(gè)變量,不知道是否是一個(gè)hack手段,但是it works.

           

          當(dāng)然本著在大數(shù)據(jù)平臺(tái)下sql的經(jīng)驗(yàn),如果換做是在hive下寫(xiě)這個(gè),思路是什么呢?

          1,我建議直接寫(xiě)一個(gè)UDAF解決。

          2,不具備UDAF能力的話,可以在一個(gè)key下做sort by后,把他們group_concat或者wm_concat起來(lái),然后getn個(gè)item即可,當(dāng)然這會(huì)利用到hive的默認(rèn)的幾個(gè)UDAFUDF

           

          思路肯定有很多,歡迎大家一起來(lái)share~

          posted on 2015-01-27 16:59 changedi 閱讀(3386) 評(píng)論(1)  編輯  收藏 所屬分類: 數(shù)據(jù)

          評(píng)論

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

          mark。  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 灯塔市| 东乡县| 綦江县| 泌阳县| 凤城市| 微博| 余干县| 武乡县| 吉安县| 信宜市| 静乐县| 临桂县| 丽江市| 改则县| 辽源市| 西平县| 崇仁县| 东光县| 志丹县| 冕宁县| 仙居县| 静海县| 泸定县| 大理市| 古丈县| 宁明县| 江山市| 馆陶县| 开平市| 环江| 赣州市| 广平县| 宜昌市| 定襄县| 临海市| 孝感市| 徐闻县| 中江县| 皋兰县| 太保市| 吴桥县|