

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

# difference


`difference` 函数计算基于一组分区和排序的度量与基于其他分区和排序的度量之间的差值。

`difference` 函数支持与基于 SPICE 和直接查询数据集的分析结合使用。

## 语法


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

```
difference
	(
	     measure 
	     ,[ sortorder_field ASC_or_DESC, ... ]
	     ,lookup_index,
	     ,[ partition field, ... ] 
	)
```

## 参数


 *度量*   
要查看差值的聚合度量。

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

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

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

## 示例


以下示例计算 `sum({Billed Amount})` 和下一行之间的差值（按 `Customer Region` 升序排序并按 `Service Line` 分区）。

```
difference(
     sum( {Billed Amount} ), 
     [{Customer Region} ASC],
     1,
     [{Service Line}]
)
```

以下示例计算 `Billed Amount` 和下一行之间的差值（按 `[{Customer Region}]` 分区）。表计算中的字段位于视觉对象的字段井中。

```
difference(
     sum( {Billed Amount} ), 
     [{Customer Region} ASC],
     1
)
```

红色突出显示部分显示每个金额如何相加 ( a \$1 b = c ) 以显示金额 a 和 c 之间的差值。

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