学学窗口函数,轻松解决问题

窗口可以理解为规定的大小范围,窗口函数即对特定范围类的数据进行应用

窗口函数结构 :

函数名() over(partition by 字段名 order  by 字段名  rows between [start] and [end])

start 表示窗口的上边界     end表示窗口的下边界   类型如下:

unbounded preceding 前面所有行 

unbounded following 后面所有行 

current row 当前行 

n following 后面n行 

n preceding 前面n行

常用的窗口函数

统计函数   

  • sum(),
  • max(),
  • min()

排序函数  

  • row_number()               [排序:1,2,3]   
  • rank()                            [排序:1,1,3]   
  • dense_rank()                [排序;1,1,2]

分布函数   

  • percent_rank()             [(rank-1)/(rows-1)]   
  • cume_dist ()                 [<=当前rank值的行数/总行数]

前后函数   

  • lag(expr,n)                   [返回当前行的前n行的值]
  • lead(expr,n)                 [返回当前行的后n行的值]

头尾函数   

  • first_value(expr)          [返回第一个expr值] 
  • last_value(expr)          [返回最后一个expr值]

其他函数   

  • nth_value(expr,n)        [返回第n个expr的值] 
  • ntile(n)                         [将有序数据分成n等,记录登记数]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值