你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:
Azure 数据工厂
Azure Synapse Analytics
提示
试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖了从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用!
数据流在 Azure 数据工厂管道和 Azure Synapse Analytics 管道中都可用。 本文适用于映射数据流。 如果你不熟悉转换,请参阅介绍性文章: 使用映射数据流转换数据。
本文提供有关 Azure 数据工厂和 Azure Synapse Analytics 在映射数据流中支持的窗口函数的详细信息。
窗口函数列表
以下函数仅在窗口转换中可用。
| 窗口函数 | 任务 |
|---|---|
| cumeDist | 计算某个值在分区内相对于所有值的位置。 结果是前面的行数,或者等于当前行在分区中的顺序除以窗口分区中的总行数。 顺序中的任何关联值将计算为相同的位置。 |
| denseRank | 计算在窗口的 order by 子句中指定的一组值中的值排名。 结果是 1 加上前面的行数,或者等于当前行在分区中的顺序。 这些值不会在序列中产生间隙。 即使未对数据进行排序并查找值更改,该 denseRank 函数也能正常工作。 |
| lag | 获取当前行之前n行所评估的第一个参数的值。 第二个参数是要回溯的行数,默认值为 1。 如果行数不多,则返回值 null ,除非指定了默认值。 |
| lead | 获取当前行之后由第一个参数计算的 n 行的值。 第二个参数是要正向查找的行数,默认值为 1。 如果行数不多,则返回值 null ,除非指定了默认值。 |
| nTile | 将每个窗口分区的行分割为从 1 到至多 n 的 n 个桶。 桶值最多相差 1。 如果分区中的行数未均匀划分为桶数,则从第一个桶开始,每个桶应分布一个余数值。
NTile 函数适合用于计算 tertiles、四分位数、十分位数和其他常见的摘要统计数据。该函数在初始化期间计算两个变量。 常规桶的大小将额外添加一行。 这两个变量都以当前分区的大小为基础。 在计算过程中,函数会跟踪当前行号、当前存储桶号和存储桶更改的行号( bucketThreshold)。 在当前行号达到桶阈值时,桶值将增加 1。 阈值按桶的大小增加(如果当前桶有填充,则额外增加一个)。 |
| rank | 计算在窗口的 order by 子句中指定的一组值中的值排名。 结果是 1 加上前面的行数,或者等于当前行在分区中的顺序。 这些值在序列中产生间隙。 即使未对数据进行排序并查找值更改,该 rank 函数也能正常工作。 |
| rowNumber | 为窗口中的行分配一个顺序行号,从 1 开始。 |