论如何使用SQL窗口函数实现跨行计算 |
您所在的位置:网站首页 › 求年龄的公式year函数 › 论如何使用SQL窗口函数实现跨行计算 |
什么是窗口函数
窗口函数(Window Function)为每行数据进行一次计算:操作多行数据(一个窗口),返回一个值。 普通聚合函数只能用来计算一行内的结果,或把所有行聚合成一行结果。窗口函数则可以跨行计算,并把结果填到到每一行中。 为什么需要窗口函数窗口函数是SQL2003标准中定义的新特性,主流数据库都有对窗口函数的支持。 窗口函数又被称为OLAP函数,在报表分析的查询中发挥了重要作用。 窗口函数能解决普通函数和聚合函数没法直接完成的事情,加快数据的分析。 在鸿鹄中如何使用窗口函数语法 PARTITION BY:表示数据先按照partition_by_list进行分区 ORDER BY:表示在各个分区内按照order_by_list进行排序 ROWS BETWEEN:表示在计算的时候选取的行,例如下面的示例选取当前行和前一行 其中frame_start/frame_end的语法为: 在没有指定窗口框架子句(frame_clause)的情况下,默认的frame和是否有ORDER BY有关 有ORDER BY,默认的frame包含从当前分区开始到当前行,等价于: 没有ORDER BY,默认的frame包含当前分区的所有行,等价于: 窗口函数分类 窗口函数主要分为聚合和非聚合两大类: 窗口函数的最佳实践以下数据集ev_sales是新能源汽车厂商nio和xp在2022年1-5月的销量数据,下面的示例是基于此数据集演示窗口函数在查询分析中用法。 需求:查看厂商每个月的累积销量 需求:计算每个月环比增速 其他参考资料 SQL Window Functions Introduction 3.5. Window Functions |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |