Hive窗口函数总结

        Hive窗口函数是一种特殊类型的函数,它们在一组相关的行(称为窗口)上执行计算,并返回一个值。窗口函数可以在每行上应用一个聚合函数,但返回的结果是基于窗口中的行,而不是整个查询结果集。

1、窗口函数的种类: 

Hive支持以下几种窗口函数:
- 聚合函数:如SUM、AVG、MIN、MAX、COUNT等。
- 排名函数:如ROW_NUMBER、RANK、DENSE_RANK、PERCENT_RANK、CUME_DIST等。
- 导航函数:如LEAD、LAG、FIRST_VALUE、LAST_VALUE、NTH_VALUE等。

2、窗口函数的语法:

 function_name(expression) OVER ([PARTITION BY partition_expression] [ORDER BY order_expression] [ROWS BETWEEN start AND end])
- function_name:窗口函数的名称。
- expression:窗口函数的参数。
- PARTITION BY:用于将结果集分割成多个分区,每个分区都有自己的窗口。
- ORDER BY:用于在每个分区内对行进行排序。
- ROWS BETWEEN:用于定义窗口的范围

 3、窗口函数示例:

 3.1聚合函数示例

 计算每个部门的总销售额:

SELECT 
  department, 
  SUM(sales) OVER (PARTITION BY department) AS total_sales
FROM 
  sales 

3.2 排名函数示例

计算每个部门的销售额排名:

SELECT 

  department, 

  sales, 

  RANK() OVER (PARTITION BY department ORDER BY sales DESC) AS rank

FROM 

  sales

3.3 导航函数示例

获取每个部门的最高销售额:

SELECT 

  department, 

  FIRST_VALUE(sales) OVER (PARTITION BY department ORDER BY sales DESC)  AS max_sales

FROM 

  sales

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值