91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

分組求排名rank,row_number,dense_rank的區別是什么

發布時間:2022-01-04 10:17:48 來源:億速云 閱讀:135 作者:iii 欄目:大數據

本篇內容介紹了“分組求排名rank,row_number,dense_rank的區別是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

分組求排名

  • 相信好多使用Mysql的用戶一定對分組求排名的需求感到發怵.

  • 但是在hive或者oracle來說就能簡單實現.

  • 采用窗口函數:rank() over() / row_number() over() / dense_rank() over()函數就能輕松完成.

窗口函數

  • 我們可以理解為我們先把需要分析的字段select出來,然后通過窗口函數進行分析.

  • 所以窗口函數產生的結果一定是一對一的,即便在窗口中使用分組操作產生相同的值也每行數據都有.

示例

select 
    user_id,user_type,sales, --窗口函數的分析字段
    RANK() over (partition by user_type order by sales desc) as rank,
    ROW_NUMBER() over (partition by user_type order by sales desc) as row_number,    DENSE_RANK() over (partition by user_type order by sales desc) as dense_rankfrom
    order_detail;
  • 根據窗口函數的理解,我們來看上述例子

    • 要分析的字段有 user_type,sales,執行過程對這些字段select出來(可能select不太準確,但是要先取得這些要用于分析的字段)

    • 使用窗口函數進行分析 over() 是窗口函數,over()里面一般要寫partition by 和 order by來對分析的數據進行分組和排序

    • over() 函數前邊要定義分析策略,比如 rank(), row_number(),dense_rank()都是不同的分析策略.

結果

user_iduser_typesalesrankrow_numberdense_rank
wutongnew6111
qishilinew5222
lilisinew5232
wangernew3443
zhangsanew2554
qibaqiunew1665
liiunew1675
liweiold3111
wangshiold2222
lisiold1333
  • 如上述表格,rank() / row_number() / dense_rank() 都是進行排名.

    • rank()在處理相同排名的時候根據同排名數據數量進行順延排名

    • dense_rank()在處理相同排名的時候不會順延排名

    • row_number()如函數名,就是單單是排名后的行數

HIVE2.10以后over()函數支持對聚合函數的支持

SELECT rank() OVER (ORDER BY sum(b))FROM tableGROUP BY a;

上面等于于

SELECT sum_b rank() OVER (ORDER BY sum_b)FROM(    SELECT SUM(b) AS sum_b    FROM table
    GROUP BY a
) t;

“分組求排名rank,row_number,dense_rank的區別是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尼勒克县| 黎川县| 屏边| 曲阜市| 临邑县| 八宿县| 阜新| 莫力| 湛江市| 贵德县| 五莲县| 昌乐县| 阳朔县| 静宁县| 新龙县| 息烽县| 卢湾区| 乡宁县| 宁陕县| 郸城县| 平泉县| 莒南县| 彰化县| 云和县| 拉萨市| 盖州市| 许昌县| 湘潭市| 易门县| 阿克| 张家口市| 昌邑市| 获嘉县| 湘乡市| 集贤县| 昌图县| 卢湾区| 刚察县| 奉新县| 香港| 会理县|