SQL窗口函数——排序函数

这里主要记一下SQL中窗口函数的3中排序函数(row_number,rank,dense_rank)的使用及分别。

1、使用方法

row_number()/rank()/dense_rank() over(partition by [分区的依据列1,分区依据列2,...] order by [排序依据列1,排序依据列2,...])

--可以不设置分区,但一定要有排序依据列,别问,问就是你在排序啊。。。
--如果分区,排序函数就会在每个分区内部进行排序



2、区别

row_number()  通常意义上的排序,不受相同值影响,如 1,2,3,4;

rank()  有相同序号,但排名具有跳跃性,比如 1,2,2,4;

dense_rank() 有相同序号,排名不具有跳跃性,如 1,2,2,3;

简记,row_number() 普通排序,rank() 跳跃排序,dense_rank() 非跳跃排序。

3、例子

emmmm....

MySQL版本不够,等我回头装一个8.0以上的,至于hive和impala有没有版本限制,回头查查。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值