- 开窗函数:在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成。为了解决这些问题,在 2003 年 ISO SQL 标准加入了开窗函数,开窗函数的使用使得这些经典的难题可以被轻松的解决。目前在 MSSQLServer、Oracle、DB2 等主流数据库中都提供了对开窗函数的支持,MySQL8.0支持。 5.7 --> 8.0
- 开窗函数简介:与聚合函数一样,开窗函数也是对行集组进行聚合计算,但是它不像普通聚合函数那样每组只返回一个值,开窗函数可以为每组返回多个值,因为开窗函数所执行聚合计算的行集组是窗口。在 ISO SQL 规定了这样的函数为开窗函数,在 Oracle 中则被称为分析函数。
常用开窗函数
HQL中(目前只知道hql中可替换)
partition by … order by …
等价于
distribute by … sort by …
建表
排序开窗函数
- 第一种:不写任何条件,只作排序使用
运行结果:
- 第二种:分组排序(默认升序)
运行结果:
聚合开窗函数
- 不加任何条件 求和该字段所有值
- 添加group by
- 添加order by排序
每次求和分组内前几个的值 常用于求单个用户对单个商品点击量的日累计点击量等。
max()over()
count() over()
max() over()
min() over()
avg() over()
这几个用法类似
常用的开窗函数还有
first_value() over(partition by … order by …)
last_value() over(partition by … order by …)
lag() over(partition by … order by …)
有兴趣自己去测试一下吧!
到此这篇max开窗函数(开窗函数使用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/haskellbc/18621.html