美文网首页
Hive分析函数概述

Hive分析函数概述

作者: 多彩海洋 | 来源:发表于2019-08-15 09:28 被阅读0次

在很多业务场景中我们需要用到窗口函数,首先,我们要知道什么是窗口子句:

需要指定一个窗口的边界,语法是这样的:

ROWS between CURRENT ROW | UNBOUNDED PRECEDING | [num] PRECEDING AND UNBOUNDED FOLLOWING | [num] FOLLOWING| CURRENT ROW

RANGE between [num] PRECEDING AND [num]FOLLOWING

如下图:

如果不指定ROWS BETWEEN,默认为从起点到当前行;
如果不指定ORDER BY,则将分组内所有值累加;
关键是理解ROWS BETWEEN含义,也叫做WINDOW子句:
PRECEDING:往前
FOLLOWING:往后
CURRENT ROW:当前行
UNBOUNDED:起点,

UNBOUNDED PRECEDING 表示从前面的起点,

UNBOUNDED FOLLOWING:表示到后面的终点

聚合函数窗口应用

数据格式

cookie1,2015-04-10,1
cookie1,2015-04-11,5
cookie1,2015-04-12,7
cookie1,2015-04-13,3
cookie1,2015-04-14,2
cookie1,2015-04-15,4
cookie1,2015-04-16,4

创建数据库及表

create database if not exists cookie;
use cookie;
drop table if exists cookie1; create table cookie1(cookieid string, createtime string, pv int) row format delimited fields terminated by ',';
load data local inpath "/home/hadoop/cookie1.txt" into table cookie1;
select * from cookie1;

查询语句

select cookieid,
createtime,
pv,
sum(pv) over (partition by cookieid order by createtime rows between unbounded preceding and current row) as pv1,
sum(pv) over (partition by cookieid order by createtime) as pv2,
sum(pv) over (partition by cookieid) as pv3,
sum(pv) over (partition by cookieid order by createtime rows between 3 preceding and current row) as pv4,
sum(pv) over (partition by cookieid order by createtime rows between 3 preceding and 1 following) as pv5,
sum(pv) over (partition by cookieid order by createtime rows between current row and unbounded following) as pv6
from cookie1;

查询结果

说明

pv1: 分组内从起点到当前行的pv累积,如,11号的pv1=10号的pv+11号的pv, 12号=10号+11号+12号
pv2: 同pv1
pv3: 分组内(cookie1)所有的pv累加
pv4: 分组内当前行+往前3行,如,11号=10号+11号, 12号=10号+11号+12号, 13号=10号+11号+12号+13号, 14号=11号+12号+13号+14号
pv5: 分组内当前行+往前3行+往后1行,如,14号=11号+12号+13号+14号+15号=5+7+3+2+4=21
pv6: 分组内当前行+往后所有行,如,13号=13号+14号+15号+16号=3+2+4+4=13,14号=14号+15号+16号=2+4+4=10

相关文章

  • Hive分析函数概述

    在很多业务场景中我们需要用到窗口函数,首先,我们要知道什么是窗口子句: 需要指定一个窗口的边界,语法是这样的: R...

  • 大数据开发之Hive篇6-Hive函数详解

    备注:Hive 版本 2.1.1 一.Hive函数概述 1.1 Hive函数分类 函数/UDF输入一行记录,输出一...

  • Hive SQL 分析函数

    本文首发于:大数据每日哔哔-Hive 分析函数 Hive 分析函数 应用场景 (1)用于分区排序 (2)Top N...

  • flink modules详解之使用hive函数

    modules概念 通过hive module使用hive函数内置函数自定义函数 sql 客户端的使用 原理分析和...

  • Hive的条件函数与日期函数全面汇总解析

    在Hive的开窗函数实战的文章中,主要介绍了Hive的分析函数的基本使用。本文是这篇文章的延续,涵盖了Hive所有...

  • Hive笔记8-窗口分析函数

    hive分析窗口函数 基础函数 SUM、AVG、MIN、MAX 序列函数 序列函数,NTILE,ROW_NUMBE...

  • Hive分析函数和窗口函数

    Hive分析函数和窗口函数 在Hive 0.11之后支持的,扫描多个输入的行计算每行的结果。通常和OVER,PAR...

  • Hive分析函数

    Hive分析函数 Example: Ntile(分片) 使用场景:计算百分之几的用户的结果 给了用户和每个用户对应...

  • Hive分析函数LAG和LEAD详解

    介绍 Hive的分析函数又叫窗口函数, 在oracle中就有这样的分析函数,主要用来做数据统计分析的。Lag和Le...

  • Hive 1.2.1 窗口函数

    1. 借鉴 网名在线生成器HIVE over() 超全讲解Hive分析窗口函数(一) SUM,AVG,MIN,MA...

网友评论

      本文标题:Hive分析函数概述

      本文链接:https://www.haomeiwen.com/subject/btlajctx.html