数据分析之hive开窗函数(一) 温馨提示 : 本文非小白科普文 开窗函数简介 MYSQL 暂时还未对开窗函数给予支持。 测试数据
图片 01、count 开窗函数 select username,product,user_type,price, 以符合条件的所有行作为窗口 count(price) over() as count1, 以按user_type分组的所有行作为窗口 count(price) over( user_type)as count2, 以按user_type分组、按price排序的所有行作为窗口 count(price) over( user_type price) as count3, 以按user_type分组、按price排序、按当前行+往前1行+往后2行的行作为窗口 count(price) over( user_type price 1 preceding 2 following) as count4 from test;
图片 02、sum 开窗函数 select username,product,user_type,price, 以符合条件的所有行作为窗口 sum(price) over() as sum1, 以按user_type分组的所有行作为窗口 sum(price) over( user_type) as sum2, 以按user_type分组、按price排序后、按到当前行(含当前行)的所有行作为窗口 sum(price) over( user_type price) as sum3, 以按user_type分组、按price排序后、按当前行+往前1行+往后2行的行作为窗口 sum(price) over( user_type price 1 preceding 2 following) as sum4 from test;
图片 03、min 开窗函数 select username,product,user_type,price, 以符合条件的所有行作为窗口 min(price) over() as min1, 以按classId分组的所有行作为窗口 min(price) over(partition by classId) as min2, 以按classId分组、按price排序后、按到当前行(含当前行)的所有行作为窗口 min(price) over(partition by classId order by price) as min3, 以按classId分组、按price排序后、按当前行+往前1行+往后2行的行作为窗口 min(price) over( classId price 1 preceding 2 following) as min4 from test;
图片 04、max 开窗函数 select username,product,user_type,price, 以符合条件的所有行作为窗口 max(price) over() as max1, 以按classId分组的所有行作为窗口 max(price) over( classId) as max2, 以按classId分组、按price排序后、按到当前行(含当前行)的所有行作为窗口 max(price) over( classId price) as max3, 以按classId分组、按price排序后、按当前行+往前1行+往后2行的行作为窗口 max(price) over( classId price 1 preceding 2 following) as max4 from test;
图片 05、avg 开窗函数 select username,product,user_type,price, 以符合条件的所有行作为窗口 avg(price) over() as avg1, 以按classId分组的所有行作为窗口 avg(price) over( classId) as avg2, 以按classId分组、按price排序后、按到当前行(含当前行)的所有行作为窗口 avg(price) over( classId price) as avg3, 以按classId分组、按price排序后、按当前行+往前1行+往后2行的行作为窗口 avg(price) over( classId price 1 preceding 2 following) as avg4 from test;
图片 相关函数总结 over():指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化 preceding n:往前n行数据 following n:往后n行数据 current row:当前行 unbounded :无界限(起点或终点) unbounded preceding:表示从前面的起点 unbounded following:表示到后面的终点 注意: 如果不指定 , 默认为从起点到当前行;
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/27344.html