窗口函数(开窗函数)

窗口函数是高阶函数,分为窗口和函数两个部分,窗口是限定函数的计算范围,函数表示是计算逻辑。

1.窗口函数的语法

基本语法:

函数 + over( [partition by …] [order by …] [窗口子句] )

  • over表示开窗,默认窗口大小会包含所有数据。
  • partition by表示根据字段再划分一个细窗口,相同字段进入同一个细窗口里面,每个窗口之间相互独立,窗口子句对于每个细窗口独立生效。
  • order by表示窗口内按什么排序,如果只有over表示直接最大窗口排序;如果有partition by每个细窗口单独排序。
  • 窗口子句,可以进一步限定范围
    • (rows | range) between (unbounded | [num]) preceding and ([num] preceding | current row | (unbounded | [num]) following
    • (rows | range) between current row and (current row | (unbounded | [num]) following)
    • (rows | range) between [num] following and (unbounded | [num]) following

示例:
rows between unbounded preceding and unbounded following
// 行的范围为上无边界到下无边界(第一行到最后一行)。
// 注:窗口函数是一行一行执行的。

2.哪些函数是窗口函数

2.1窗口函数

  • lag(col,n,default_val):往前第n行数据。
  • lead(col,n, default_val):往后第n行数据。
  • first_value (col,true/false):当前窗口下的第一个值,第二个参数为true,跳过空值。
  • last_value (col,true/false):当前窗口下的最后一个值,第二个参数为true,跳过空值。

2.2聚合函数

  • max:最大值。
  • min:最小值。
  • sum:求和。
  • avg:平均值。
  • count:计数。

2.3排名分析函数

  • rank:排名相同时会重复,总数不会减少。
  • dense_rank:排名相同时会重复,总数会减少。
  • row_number:行号。
  • ntile:分组并给上组号。

hive 窗口函数(开窗函数)相关推荐

  1. hive窗口函数(开窗函数)

    一.[窗口函数概述] 窗口函数(Window functions)是一种SQL函数,非常适合于数据分析,因此也叫做OLAP函数,其最大特点是:输入值是从SELECT语句的结果集中的一行或多行的&quo ...

  2. 2021年大数据Hive(七):Hive的开窗函数

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的开窗函数 一.窗口函数 ROW_NUMBER,RANK ...

  3. 大数据Hive(七):Hive的开窗函数

    文章目录 Hive的开窗函数 一.窗口函数 ROW_NUMBER,RANK,DENSE_RANK 1.数据准备

  4. Hive SQL开窗函数详解

    Hive 开窗函数 group by 是分组函数,一组出来一个数据 over() 开窗,针对每一条数据,都有一个独立的组 mk 3 jk 3 mk 3 select orderdate,cost,su ...

  5. hive的开窗函数篇

    开窗函数over(),over()里面一般可以配合分组,排序,窗口范围三个条件使用,也可以单独用一个条件,格式如over(partition by order by between ... and) ...

  6. hive 窗口函数--常用函数介绍

    文章目录 一.窗口函数概念 二.语法及常用函数 2.1语法 2.2窗口函数的特征 2.3窗口函数的分类 2.3.1排序 2.3.2聚合 2.3.3分析 2.3.4窗口定义 一.窗口函数概念 窗口函数是 ...

  7. hive sql—开窗函数—累积求和和滑动求和

    1.数据介绍 数据集有三列数据,姓名.月份和数量: 图1 2.累积求和 使用sum()函数和over()来实现,如下: sum(需要求和的列) over(partition by 分组列 order ...

  8. hive中开窗函数 :percent_rank()的含义

    这是hql语句 查询结果 percent_rank() 含义就是 当前行-1 / 当前组总行数-1 比如第一行: 1-1/14-1 = 0 : 第二行:2-1/14-1=0.07692,,,,,,

  9. Hive第六天——Hive函数(开窗函数之累计统计)

    本文部分参考自:https://blog.csdn.net/qq_23897391/article/details/100558433 Hive第六天--Hive函数 自己的话:千里之行,始于足下. ...

  10. hive中的开窗函数

    目录 count开窗函数 sum开窗函数 min开窗函数 max开窗函数 avg开窗函数 first_value开窗函数 last_value开窗函数 lag开窗函数.lead开窗函数 cume_di ...

最新文章

  1. pandas读取csv文件的前几行数据(nrows参数)、pandas读取csv文件的中间几行数据(skiprows=range(a,b))
  2. 计算机ppt2003考试试题,计算机模块PPT2003试题及答案.doc
  3. 100M独享带宽香港服务器有多快
  4. 计算机网络课程设计子网划分,计算机网络实验三   子网掩码与划分子网
  5. centos7安装mysql5.6.25
  6. python参数化_Python 中如何实现参数化测试的方法示例
  7. Mac osx系统中virtual box 中的Ubuntu系统的全屏显示问题解决
  8. JUnit 5 –条件
  9. RocketMq单机和集群搭建教程
  10. 一场由SameSite字段引发的前端悲剧
  11. java十进制转换成二进制数
  12. Mathtype公式编辑器常用快捷键
  13. Computer Hardware ID(CHID)及驱动推送
  14. Paxos算法(一)—Basic Paxos
  15. mysql 生成随机手机号和随机中文名
  16. MX550性能怎么样 mx550 属于什么档次的显卡
  17. 高级产品经理十八种能力
  18. 如何改变默认的checkbox样式
  19. 拼多多100亿的羊毛,就问你薅不薅?
  20. 基于单片机的秒表计时器系统设计(#0400)

热门文章

  1. SWAT模型在水文水资源、面源污染模拟中的实践技术应用
  2. SWAT模型气象数据处理(一)
  3. roboto字体android,Android字体设置 Roboto字体使用
  4. Android APP 全局字体替换-思源黑体
  5. spring - 源码下载与构建
  6. bp神经网络回归预测模型(python实现)_bp神经网络预测代码python
  7. SQL SERVER 2000数据库置疑处理
  8. R语言学习笔记 | R语言的入门
  9. linux7.4邮件服务器,Centos7.4搭建邮件收发服务器(部署篇)
  10. 软件工程第二篇博客(“相等”)