分组求排名rank,row_number,dense_rank的区别是什么

发布时间:2022-01-04 10:17:48 作者:iii
来源:亿速云 阅读:131

本篇内容介绍了“分组求排名rank,row_number,dense_rank的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

分组求排名

窗口函数

示例

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_iduser_typesalesrankrow_numberdense_rank
wutongnew6111
qishilinew5222
lilisinew5232
wangernew3443
zhangsanew2554
qibaqiunew1665
liiunew1675
liweiold3111
wangshiold2222
lisiold1333

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的区别是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. SqlServer基础系列——row_number() rank() dense_rank()SqlServer系列笔记
  2. Hive 查询中的分组排名

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rank row_number dense_rank

上一篇:如何进行Redis sentinel 的简单说明

下一篇:JS的script标签属性有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》