

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# lag


`lag` 函数计算基于指定分区和排序的度量的滞后（上一个）值。

`lag` 支持用于基于 SPICE 和直接查询数据集的分析。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
lag
(
lag
(
 measure
 ,[ sortorder_field ASC_or_DESC, ... ] 
 ,lookup_index
 ,[ partition_field, ... ] 
)] 
)
```

## 参数


*度量*   
要获取滞后值的度量。这可能包括聚合，例如，`sum({Sales Amt})`。

*排序顺序字段*   
要在对数据排序时使用的一个或多个度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

*查找索引*   
查找索引可以为正数或负数，表示排序中的下一行（正数）或排序中的上一行（负数）。查找索引可以为 1-2,147,483,647。对于引擎 MySQL、MariaDB 和 Amazon Aurora MySQL 兼容版，查找索引仅限为 1。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算上一个 `sum(sales)`（按源州/省分区并按 `cancellation_code` 升序排序顺序排序）。

```
lag
(
     sum(Sales), 
     [cancellation_code ASC], 
     1, 
     [origin_state_nm]
)
```

以下示例使用计算字段和 `lag` 在当前行的金额旁边显示上一行的销售额（按 `Order Date` 排序）。表计算中的字段位于视觉对象的字段井中。

```
lag(
     sum({Sales}),
     [{Order Date} ASC],
     1
)
```

以下屏幕截图显示了示例的结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/lagCalc.png)


以下示例使用计算字段和 `lag` 在当前行的金额旁边显示上一行的销售额（按 `Order Date` 排序，按 `Segment` 划分）。

```
lag
	(
		sum(Sales),
		[Order Date ASC],
		1, [Segment]
	)
```

以下屏幕截图显示了示例的结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/lagCalc2.png)
