hive窗口函数over()
over(),指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而变化。
根据尚硅谷大数据Hive教程,总结整理
(1)over() group by,给每一条数据都开全量窗口
原数据
需求:查询在 2017 年 4 月份购买过的顾客及总人数
- 1)查询在 2017 年 4 月份购买过的所有字段
substring(string A, int start, int len):从0开始,截取字符串
- 2)–查询在 2017 年 4 月份购买过的顾客
- 3)2017 年 4 月份购买过的总人数
- 需求是,既要人名又要总数,
(可以把两个sql查出的数据,做笛卡尔积,join,不靠谱)
(该sql含义为,每个人在4月的购买次数,不是我们的需求人数,不符合。)
- 需求是,既要人名又要总数,
- 在上面的sql中,只加一个over(),就可以达到目的,over()在group by函数后生效。
意思为,count(*)是在over()窗口中进行,over()窗口中没写东西,则 所有数据