映射数据流中的窗口函数
适用于:Azure 数据工厂 Azure Synapse Analytics
数据流在 Azure 数据工厂和 Azure Synapse 管道中均可用。 本文适用于映射数据流。 如果不熟悉转换,请参阅介绍性文章使用映射数据流转换数据。
以下文章详细介绍了映射数据流中 Azure 数据工厂和 Azure Synapse Analytics 所支持的窗口函数。
窗口函数列表
以下函数仅可用于窗口转换。
窗口函数 | 任务 |
---|---|
cumeDist | CumeDist 函数计算某个值相对于分区中所有值的位置。 结果是前面的行数,或者等于当前行在分区中的顺序除以窗口分区中的总行数。 顺序中的任何关联值将计算为相同的位置。 |
denseRank | 计算在窗口的 order by 子句中指定的一组值中的值排名。 结果是 1 加上前面的行数,或者等于当前行在分区中的顺序。 值不会在序列中生成空隙。 即使数据未排序,也能进行密集排名,并且会查找值的变化。 |
lag | 获取当前行之前由第一个参数计算的 n 行的值。 第二个参数是要反向查找的行数,默认值为 1。 如果行数不多,则返回 NULL 值,除非指定了默认值。 |
lead | 获取当前行之后由第一个参数计算的 n 行的值。 第二个参数是要正向查找的行数,默认值为 1。 如果行数不多,则返回 NULL 值,除非指定了默认值。 |
nTile | NTile 函数将每个窗口分区的行分割为从 1 到 n 的 n 桶。 桶值最大相差 1。 如果分区中的行数不能均匀分割成桶数,则余值将逐个分布在每个桶中,从第一个桶开始。 NTile 函数适合用于计算 tertiles 、四分位数、十分位数和其他常见的摘要统计数据。 在初始化期间,该函数将计算两个变量:常规桶的大小将额外添加一行。 这两个变量都以当前分区的大小为基础。 在计算过程中,该函数将跟踪当前行号、当前桶号,以及发生桶更改的行号 (bucketThreshold)。 如果当前行号达到桶的阈值,则桶值将会加 1,阈值将按桶大小增加(如果当前桶已填充,则额外加 1)。 |
rank | 计算在窗口的 order by 子句中指定的一组值中的值排名。 结果是 1 加上前面的行数,或者等于当前行在分区中的顺序。 值将在序列中生成空隙。 即使数据未排序,也能进行排名,并且会查找值的变化。 |
rowNumber | 为窗口中的行分配一个顺序行号,从 1 开始。 |
相关内容
- 所有聚合函数的列表。
- 所有数组函数的列表。
- 所有高速缓存的查找函数的列表。
- 所有转换函数的列表。
- 所有 日期和时间函数的列表。
- 所有表达式函数的列表。
- 所有 地图函数的列表。
- 所有元函数的列表。
- 所有数据转换表达式的使用情况详细信息。
- 了解如何使用表达式生成器。