<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Change Dir

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

    統計

    留言簿(18)

    積分與排名

    “牛”們的博客

    各個公司技術

    我的鏈接

    淘寶技術

    閱讀排行榜

    評論排行榜

    Leetcode-Database-178-Rank Scores-Medium

    題目地址:https://oj.leetcode.com/problems/rank-scores/

     

    這個問題很有趣,寫一個類似oracle里的窗口函數rank(),具體描述一下,有一張數據表Scores,里面有兩個字段IdScore,具體結構如下:

    +----+-------+
    | Id | Score |
    +----+-------+
    | 1  | 3.50  |
    | 2  | 3.65  |
    | 3  | 4.00  |
    | 4  | 3.85  |
    | 5  | 4.00  |
    | 6  | 3.65  |
    +----+-------+

     

     

    任務是要寫一個sql來給Score字段打一個rank標識,條件是按照Score從大到小排序,相等情況時rank相同,且rank之間沒有“洞”,即rank字段是連續值。顯然這個任務比rank窗口函數容易一些,但是也是一個棘手的問題。

    題目具體給出了輸出示例:

    +-------+------+
    | Score | Rank |
    +-------+------+
    | 4.00  | 1    |
    | 4.00  | 1    |
    | 3.85  | 2    |
    |
     3.65  | 3    |
    | 3.65  | 3    |
    | 3.50  | 4    |
    +-------+------+

     

     

    平常說實話rank函數或者row_number函數用多了,很少考慮實現,面對這個問題,硬著頭皮用笛卡爾積的join解決了,若是在hive中,strict模式可能拒絕笛卡爾積的join,這時還是求助于窗口函數rank~~

     

    實現代碼如下:

    select
    o1.Score
    ,count(o2.Score) as Rank
    from(
    select * from Scores
    )o1
    left outer join(
    select distinct Score from Scores
    )o2
    on(o1.Score<=o2.Score)
    group by
    o1.Id
    order by o1.Score desc

     

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

    評論

    # re: Leetcode-Database-178-Rank Scores-Medium 2015-01-29 21:37 京山游俠

    你的博客頁面打開好慢啊。是不是引用了不該引用的JavaScript?改一下吧。  回復  更多評論   

    主站蜘蛛池模板: 亚洲免费视频观看| 国产午夜不卡AV免费| 91免费精品国自产拍在线不卡| 久久99国产亚洲高清观看首页| eeuss免费天堂影院| 国产午夜亚洲精品理论片不卡 | 亚洲精品高清国产一线久久| 一级做a毛片免费视频| 国产精品xxxx国产喷水亚洲国产精品无码久久一区| 亚洲国产精品网站在线播放| 成人免费无码精品国产电影| 毛片亚洲AV无码精品国产午夜| 国产高清免费观看| 免费国产污网站在线观看不要卡| 四虎免费久久影院| 亚洲精品黄色视频在线观看免费资源 | 最近中文字幕无免费视频| 亚洲熟伦熟女专区hd高清| 国产精品无码一区二区三区免费| 香港特级三A毛片免费观看| 久久精品亚洲福利| 永久免费视频网站在线观看| 亚洲午夜成人精品无码色欲| 亚洲国产成人久久笫一页| 成人免费乱码大片A毛片| 亚洲毛片在线观看| 成人免费看吃奶视频网站| 无套内射无矿码免费看黄| 亚洲av中文无码乱人伦在线播放| 69av免费观看| 亚洲AV网一区二区三区 | 999zyz**站免费毛片| 亚洲成年人电影在线观看| 国产性生交xxxxx免费| 美女被cao网站免费看在线看| 亚洲视频在线观看网站| 国产一区二区三区在线免费观看| 中文字幕看片在线a免费| 亚洲人成影院在线高清| 精品国产亚洲男女在线线电影 | 十九岁在线观看免费完整版电影|