Hive 1.2.1 窗口函数

2020-06-27  本文已影响0人  孙瑞锴

1. 借鉴

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

2. 开始

数据准备

db_company.hotel_order 数据下载
表结构如下:

create external table db_company.hotel_order
(
  id bigint,
  name string,
  order_date string,
  price bigint,
  code string
)
row format delimited
fields terminated by ',';

加载数据

load data local inpath '/opt/envs/datas/hotel/hotel_order.txt' into table db_company.hotel_order;

窗口函数

那么括号里可以写那些内容呢?

内容 释义
CURRENT ROW 表示当前行
n PRECEDING 表示往前n行数据
n FOLLOWING 表示往后n行数据
UNBOUNDED PRECEDING 表示从前面的起点
UNBOUNDED FOLLOWING 表示到后面的终点

那个又有哪些指定的函数呢?

内容 释义
MAX(col)                                                     取最大值
MIN(col) 取最小值
AVG(col) 取平均值
COUNT(col) 取总数
LAG(col,n) 往前第n行数据,第三个参数为默认值,可选
LEAD(col,n) 往后第n行数据,第三个参数为默认值,可选
NTILE(n) 把有序分区中的行分发到指定数据的组中,各个组有编号,编号从1开始,对于每一行,NTILE返回此行所属的组的编号。注意:n必须为int类型。
RANK() 排序相同时会重复,总数不会变(并列)
[4个人,排名为:1,1,3,4]
DENSE_RANK() 排序相同时会重复,总数会减少
[4个人,排名为:1,1,2,3]
ROW_NUMBER() 会根据顺序计算
[4个人,排名为:1,2,3,4]

栗子

我们通过一些栗子来看下窗口函数

3. 大功告成

上一篇 下一篇

猜你喜欢

热点阅读