1
)相关函数说明
OVER():指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而变化。
CURRENT ROW
:当前行
n PRECEDING
:往前
n
行数据
n FOLLOWING
:往后
n
行数据
UNBOUNDED
:起点,
UNBOUNDED PRECEDING
表示从前面的起点,
UNBOUNDED FOLLOWING
表示到后面的终点
LAG(col,n,default_val)
:往前第
n
行数据
LEAD(col,n, default_val)
:往后第
n
行数据
NTILE(n)
:把有序窗口的行分发到指定数据的组中,各个组有编号,编号从
1
开始,对
于每一行,
NTILE
返回此行所属的组的编号。
注意:
n
必须为
int
类型。
2
)数据准备:
name
,
orderdate
,
cost
3
)需求
(1)查询在
2017
年
4
月份购买过的顾客及总人数
(2)查询顾客的购买明细及月购买总额
(3)上述的场景
,
将每个顾客的
cost
按照日期进行累加
(4)查询每个顾客上次的购买时间
(5)查询前
20%
时间的订单信息
4
)创建本地
business.txt
,导入数据
[atguigu@hadoop102 datas]$ vi business.txt
5
)创建
hive
表并导入数据
6)按需求查询数据
(1) 查询在 2017
年
4
月份购买过的顾客及总人数
(2) 查询顾客的购买明细及月购买总额
(3) 将每个顾客的 cost
按照日期进行累加
rows 必须跟在 order by 子句之后,对排序的结果进行限制,使用固定的行数来限制分
区中的数据行数量
(4) 查看顾客上次的购买时间
(5) 查询前 20%
时间的订单信息
2.6 Rank
1
)函数说明
RANK()
排序相同时会重复,总数不会变
DENSE_RANK()
排序相同时会重复,总数会减少
ROW_NUMBER()
会根据顺序计算
2
)数据准备
3)需求
计算每门学科成绩排名。
4
)创建本地
score.txt
,导入数据
[atguigu@hadoop102 datas]$ vi score.txt
5
)创建
hive
表并导入数据
6)按需求查询数据