

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# lag
<a name="lag-function"></a>

`lag` 函數會計算根據指定的分割和排序量值的滯後 (前面) 值。

`lag` 支援與根據 SPICE 的分析和直接查詢資料集搭配使用。

## 語法
<a name="lag-function-syntax"></a>

需使用括弧。若要了解哪些參數是選用的，請參閱以下描述。

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

## 引數
<a name="lag-function-arguments"></a>

*measure*   
您要取得滯後的度量。這可以包含彙總，例如 `sum({Sales Amt})`。

*sort order field*   
您要排序資料依據的一或多個度量和維度，以逗號分隔。您可以指定遞增 (**ASC**) 或遞減 (**DESC**) 排序順序。  
如果有不只一個字，則清單中的每個欄位會括在 \$1\$1 (大括號) 中。整個清單會以 [ ] (方括弧) 括住。

*lookup index*   
查詢索引可為正值或負值，代表排序中的下一個資料列 (正值) 或排序中的上一個資料列 (負值)。查詢索引可以是 1–2,147,483,647。對於 MySQL、MariaDB 和 Amazon Aurora MySQL 相容版引擎，查詢索引僅限為 1。

 *partition field*   
(選用) 您要分割依據的一或多個維度，以逗號分隔。  
如果有不只一個字，則清單中的每個欄位會括在 \$1\$1 (大括號) 中。整個清單會以 [ ] (方括弧) 括住。

## 範例
<a name="lag-function-example"></a>

以下範例會計算上一個 `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.aws.amazon.com/zh_tw/quick/latest/userguide/images/lagCalc.png)


以下範例使用帶有 `lag` 的計算欄位，顯示在目前資料列金額旁的上一個資料列的銷售金額，依 `Order Date` 排序、`Segment` 分割。

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

以下螢幕擷取畫面顯示範例的結果。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/quick/latest/userguide/images/lagCalc2.png)
