千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  关于学院  >  技术干货  >  大数据技术干货  >  正文

Hive窗口函数

来源:千锋教育
发布时间:2022-09-28 14:55:25
分享

Hive窗口函数

  窗口函数是用于分析用的一类函数,要理解窗口函数要先从聚合函数说起。 大家都知道聚合函数是将某列中多行的值合并为一行,比如sum、count等。 而窗口函数则可以在本行内做运算,得到多行的结果,即每一行对应一行的值。通用的窗口函数可以用下面的语法来概括:

  Function() Over (Partition By Column1,Column2,Order By Column3)

  窗口函数又分为以下三类: 聚合型窗口函数 分析型窗口函数 * 取值型窗口函数

  聚合型窗口函数

  -- SUM(), MIN(),MAX(),AVG(),COUNT() 这些聚合函数和Over函数配合使用

  -- 列子:

  SUM(result) OVER (PARTITION BY a ORDER BY b) -- 累计至当前行的和

  SUM(result) OVER (PARTITION BY a ORDER BY b rows between 3 preceding and current row) --之前三行到当前行的和

  分析型窗口函数

  # RANk(),ROW_NUMBER(),DENSE_RANK() 等函数和Over函数配合使用

  # 例子:

  ROW_NUMBER() OVER (PARTITION BY a ORDER BY b)

  * ROW_NUMBER():生成连续的序号(相同元素序号相同)

  * RANk():如两元素排序相同则序号相同,并且会跳过下一个序号;

  * DENSE_RANK():如两元素排序相同则序号相同,不会跳过下一个序号

  OLAP 分析中常用的几个函数

  -- Grouping Sets

  -- 在一个GROUP BY查询中,根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果集进行UNION ALL

  SELECT

  a,

  b,

  COUNT(DISTINCT uuid) AS uv,

  FROM t1

  GROUP BY a,b

  GROUPING SETS (month,day,(month,day))

  -- CUBE

  -- 在一个GROUP BY查询中,根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果集进行UNION ALL

  SELECT

  a,

  b,

  COUNT(DISTINCT uuid) AS uv,

  FROM t1

  GROUP BY a,b

  WITH CUBE

  --ROLLUP

  --是CUBE的子集,以最左侧的维度为主,从该维度进行层级聚合

  SELECT

  a,

  b,

  COUNT(DISTINCT uuid) AS uv,

  FROM t1

  GROUP BY a,b

  WITH ROLLUP

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

相关推荐

  • kafka集群搭建详细步骤 搭建Kafka集群涉及以下步骤:1.**安装和配置Java**:确保每台服务器都安装了适当版本的Java,并设置了正确的环境变量。2.**下载和解压Kafka**:从官方网站下载Kafka的二进制发行
  • zookeeper安装配置为什么报错? 安装和配置ZooKeeper可能会出现各种错误。以下是一些常见的错误和对应的解决方法:1.**连接错误**:在配置ZooKeeper集群时,可能会出现连接错误,例如连接超时、连接被拒绝等。这通常是由于
  • zookeeper搭建集群 要搭建ZooKeeper集群,你需要按照以下步骤进行操作:1.下载和安装ZooKeeper:从ApacheZooKeeper的官方网站下载ZooKeeper的二进制发行版,并根据操作系统的要求进行安装
  • kafka怎么使用 Kafka是一种高吞吐量、可扩展的分布式消息队列系统,常用于构建实时流数据处理和事件驱动的应用程序。下面是使用Kafka的基本步骤:1.安装和配置Kafka:-下载Kafka:访问ApacheKafk
  • jointplot()函数的用法是什么? jointplot() 是 Seaborn 数据可视化库中的一个函数,用于绘制两个变量之间的二维关系,通常是散点图或密度图,同时绘制单变量的直方图或密度图。
  • highcharts和echarts的区别 功能:两个库都提供了丰富的图表类型和交互功能,但是 Highcharts在某些方面比Echarts 更强大,比如地图类型和导出功能。性能:Echarts的渲染速度比 Highcharts 更快,因为它使用了Canvas来绘制图表。