MySQL 窗口函数代码应用示例及说明
1.概念介绍
窗函数,也叫解析函数,也叫窗函数。
可以实现复杂的统计分析。统计数据可以分为灵活的和可变的类别。它是一个非常重要且经常使用的分析功能(OLAP)。
窗口函数可以轻松实现Excel中需要多个视角或多个步骤的任务。是省时省力的好帮手。
下表展示了窗口函数和聚合函数之间的关系和区别,帮助您更好地理解两种函数类型的作用和应用:
(窗口函数是聚合函数的更高级用法,因此聚合函数出现在前面)
2。各窗口函数使用示例
2.1 sum()over()函数(比较聚合函数sum()函数):
(avg()、max()、min()函数相同)
2.2 order by 子句函数
2.3rank(), close_rank(), rownumber() 排序函数
① rownumber() 上述(按销售描述排序) ----按照销售数量,降序排列无重复、无遗漏,1 2 3 4 5;
②rank()above(order by Sales desc)----将销售数量降序排序,与第一不相关,1 1 3 4 5;
③dense_rank() over(order by Sales desc) ----按照Sales降序对数字进行排序,并列第一第二,1 1 2 3 3 4;
④percent_rank() above( order by Sales desc) ---- 按Sales降序对数字进行排序,计算公式为(排序数字①)/(N-1)
2.4 Offset Lead() move向前,layer()向后移动
下面的写法更符合使用习惯。上面列出的顺序主要是为了方便后面解释。早期写代码时注意养成良好的习惯(带有指令的代码,在下一栏前放置逗号以醒目等)
Offset 多用于时间上向前或向后移动,计算留存率、最近两次消费的时间间隔等。本文的样本数据中没有日期,所以暂时使用销售数据。如果想理解透彻,还需要对代码运行结果做更实际的对比。 。
2.5 ntile()函数
2.6first_value()函数和last_value()函数
顾名思义:第一个值和最后一个值,大部分是与partition by子句和顺序结合起来的按句子
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。