前提:
按照OVER() 进行partion,然后每个分组执行函数计算。

最后为每一个分组增加对应的字段数据。最后原始数据行数

没有改变,可以在此基础上继续使用。

一、计算累计和
统计1-12月的累积销量,即1月为1月份的值,2月为1.2月份值的和,3月为123月份的和,12月为1-12月份值的和

SELECT
month,SUM(amount) month_amount,
SUM( SUM(amount)) OVER (ORDER BY month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_amount
FROM table_name
GROUP BY month
ORDER BY month;

其中:

SUM( SUM(amount)) 内部的SUM(amount)为需要累加的值,在上述可以换为 month_amount

ORDER BY month 按月份对查询读取的记录进行排序,就是窗口范围内的排序

ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 定义起点和终点,UNBOUNDED PRECEDING 为起点,表明从第一行开始, CURRENT ROW为默认值,就是这一句等价于:

ROWS UNBOUNDED PRECEDING

PRECEDING:在前 N 行的意思。

FOLLOWING:在后 N 行的意思。

注意以下几点:

1)order by 后面省去了窗口子句,还原起来就是order by xxx range between unbounded preceding and current row.

2)partition by之后没有使用order by,窗口大小默认就是整个分组

二、排序行号

SELECT
column_name,
RANK() OVER (ORDER BY column_name DESC) AS rank,
DENSE_RANK() OVER (ORDER BY SUM(column_name) DESC) AS dense_rank
FROM table_name

RANK()在出现等级相同的元素时预留为空,DENSE_RANK()不会。

Eg:某产品类型有两个并列第一

RANK():第一二为1,第三位3

DENSE_RANK():第一二为1,第三位2

SELECT
ROW_NUMBER() OVER (ORDER BY column_name DESC)AS row_name
FROM table_name;

上面两个的区别?如下:

(1)Rank函数返回一个唯一的值,除非遇到相同的数据时,此时所有相同数据的排名是一样的,
同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。

(2)Dense_rank函数返回一个唯一的值,除非当碰到相同数据时,此时所有相同数据的排名都是一样的。

(3)Row_number函数返回一个唯一的值,当碰到相同数据时,排名按照记录集中记录的顺序依次递增。

三、过滤数据

Plain Text
select *
from (SELECTevent,pt,sv,dm,time,PERCENTILE_APPROX(time, 0.90) OVER (PARTITION by event,pt,sv,dm) time_percent
FROMlog.xm_sdk_log
WHEREdt = '20160427'
ANDtime IS NOT NULL)tmpwhere time > time_percent

hive over窗口函数使用相关推荐

  1. Hive分析窗口函数(一) SUM,AVG,MIN,MAX

    Hive分析窗口函数(一) SUM,AVG,MIN,MAX Hive分析窗口函数(一) SUM,AVG,MIN,MAX Hive中提供了越来越多的分析函数,用于完成负责的统计分析.抽时间将所有的分析窗 ...

  2. Hive分析窗口函数系列文章

    分析窗口函数应用场景: (1)用于分区排序 (2)动态Group By (3)Top N (4)累计计算 (5)层次查询 Hive分析窗口函数(一) SUM,AVG,MIN,MAX Hive中提供了越 ...

  3. Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP

    GROUPING SETS 该关键字可以实现同一数据集的多重group by操作.事实上GROUPING SETS是多个GROUP BY进行UNION ALL操作的简单表达,它仅仅使用一个stage完 ...

  4. Hive 的窗口函数

    本文首发于:微信公众号[大数据每日哔哔,文章:Hive SQL 窗口函数 在 SQL 中有一类函数叫做聚合函数,例如 sum().avg().max().min() 等等,这类函数可以将多行数据按照规 ...

  5. Hive SQL 窗口函数

    本文首发:大数据每日哔哔-Hive SQL 窗口函数 Hive 的窗口函数 在 SQL 中有一类函数叫做聚合函数,例如 sum().avg().max().min() 等等,这类函数可以将多行数据按照 ...

  6. HIVE:窗口函数,用sql语句查询MySQL安装路径和版本

    数据大师: Jmx's Blog | Keep it Simple and Stupid! 猴子 - 知乎公众号(猴子数据分析)著有畅销书<数据分析思维>科普中国专家 回答数 647,获得 ...

  7. hive的窗口函数详解

    1.1 hive窗口函数 窗口函数是什么鬼? 窗口函数指定了函数工作的数据窗口大小(当前行的上下多少行),这个数据窗口大小可能会随着行的变化而变化.窗口函数和聚合函数区别? 窗口函数对于每个组返回多行 ...

  8. Hive分析窗口函数

    分析窗口函数应用场景: (1)用于分区排序 (2)动态Group By (3)Top N (4)累计计算 (5)层次查询 Hive分析窗口函数(一) SUM,AVG,MIN,MAX Hive中提供了越 ...

  9. Hive学习(15)-Hive分析窗口函数(三)

    原文来自:扎心了,老铁的<Hive学习之路 (十五)Hive分析窗口函数(三) CUME_DIST和PERCENT_RANK>

  10. 使用Hive的窗口函数进行数据分析——以股票市场分析为例

    声明:本文主要是实现利用Hive常用的窗口函数和一些数据分析思维分析数据,只是套用在股票数据的例子上,因此并不适用于提高投资技巧! 我们先看一下常用Hive中常用的窗口: PRECEDING:往前 F ...

最新文章

  1. 干货 | 2021年,深度学习还有哪些研究方向可以做?
  2. Nat. Genet. | 基于CRISPRi技术检测增强子与启动子相互作用
  3. android jar 无法访问r文件,android项目中gen目录不能自动生成R.java的原因
  4. 单位员工通讯录管理系统(线性表的应用)
  5. 【错误记录】eclipse,android,logcat日志无法打印,真机调试
  6. android miui9.0改装条例,安卓的通知适配(更新至9.0)
  7. linux内核percpu变量声明,Linux kernel percpu变量解析
  8. java that关键字_Java中this关键字的几种用法
  9. 送书 | 一本针对零基础 AI 学习的书:Python入门到人工智能实战
  10. nodejs通过响应回写的方式渲染页面资源
  11. java图片转ASCII码_将图片转化成对应的Ascii字符图片
  12. 薛定谔 Maestro教程--用户界面 | 结构编辑 | 测量距离角度
  13. 求一个数的平方c语言函数实现,C++中数的平方是什么函数?
  14. 核爆rpg学院站计算机,给新人的一点收集建议
  15. tools-centos-基本配置
  16. 简体中文转换为繁体中文
  17. Web网站中利用JavaScript中ActiveXObject对象获取硬件信息(显示器数量、分辨率)从而进行单双屏跳转...
  18. Bat 批处理之 for/f 详解
  19. 2021.9.17 zookeeper Linux 常用命令
  20. Unity脚本介绍和常用API

热门文章

  1. 港藤商贸插上世纪福星珠宝软件翅膀
  2. mysql自增id修改最大值_MySQL自增ID最大值被使用
  3. 计算机上可移动磁盘,win10系统我的电脑出现很多个可移动磁盘的解决方法
  4. 大话手游网页无法链接到服务器,大话西游手游网页版无法运行解决办法
  5. windows下gdal的java开发环境搭建
  6. Scratch基础知识总结(运动~事件)
  7. 移动硬盘数据丢失恢复教程
  8. 由“正方”jiam、jiemi之逆向思及Base64之逆编码表
  9. oracle怎么么创建索引,Oracle 创建索引,oracle索引怎么创建
  10. macbook air,仅安装win7下开启触控板右键(安装bootcamp异常,或没有触控板选项)