hive 开窗函数OVER(PARTITION)详解(一)

本文详细介绍了Hive中的窗口函数,它在SQL2003标准中引入,允许对数据进行复杂分析。窗口函数通过OVER关键字定义,可选择PARTITION BY进行分区,ORDER BY进行排序,并定义ROWS或RANGE来指定数据范围。与GROUP BY不同,窗口函数不改变原有数据行,而是为每一行计算结果。Hive中窗口函数的执行分为两个阶段,首先完成其他运算,然后计算窗口函数。文章后续将探讨Hive中具体的窗口函数及应用。
摘要由CSDN通过智能技术生成

什么是窗口函数?

窗口函数(Window Function) 是 SQL2003 标准中定义的一项新特性,并在 SQL2011、SQL2016 中又加以完善,添加了若干处拓展。窗口函数不同于我们熟悉的普通函数和聚合函数,它为每行数据进行一次计算:输入多行(一个窗口)、返回一个值。在报表等分析型查询中,窗口函数能优雅地表达某些需求,发挥不可替代的作用。

窗口函数出现在 SELECT 子句的表达式列表中,它最显著的特点就是 OVER 关键字。语法定义如下:

window_function (expression) OVER ( 
        [ PARTITION BY part_list ] 
        [ ORDER BY order_list ] 
        [ { ROWS | RANGE } BETWEEN frame_start AND frame_end ] 
)

其中包括以下可选项:

  • PARTITION BY 表示将数据先按 part_list 进行分区
  • ORDER BY 表示将各个分区内的数据按 order_list 进行排序

最后一项表示 Frame 的定义,即:当前窗口包含哪些数据?

  • ROWS 选择前后几行,例如 ROWS BETWEEN 3 PRECEDING AND 3 FOLLOWING 表示往前 3 行到往后 3 行,
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值