# Only

Only() 用于返回一个值（如果从聚合数据得出一个且只有一个可能值）。例如，如果有多个产品的单价为 9，则只搜索单价为 9 的产品将会返回 NULL。

语法：

Only([{SetExpression}] [TOTAL [&lt;fld {,fld}&gt;]] expr)

返回数据类型： 双

参数：

* expr: 表达式或字段包含要度量的数据。

* SetExpression: 聚合函数会默认聚合选择项定义的可能记录集合。可选记录集合可由集合分析表达式定义。

* TOTAL: 如果在函数参数前面出现单词 TOTAL，则计算给出当前选择项的所有可能值，而不只是属于当前维度值的那些值，即它会忽略图表维度。 TOTAL 限定符后可能紧跟着一系列由尖括号括起来的一个或多个字段名 &lt;fld&gt;。这些字段名应该是图表维度变量的子集。

  [定义聚合范围](https://help.qlik.com/zh-CN/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)

提示注释如果在样本数据中有多个可能的值时您想要 NULL 结果，则使用 Only()。

示例：

示例和结果

| 示例 | 结果 |
| --- | --- |
| `<br>Only({<UnitPrice={9}>} Product)` | BB，因为这是 `Product` 为 9 的唯一 `UnitPrice`。 |
| `Only({<Product={DD}>} Customer)` | Betacab，因为这是销售 `Product` 的唯一 `Customer`，称为“DD”。 |
| `Only({<UnitPrice={20}>} UnitSales)` | `UnitPrice` 为 20 的 `UnitSales` 数量为 2，因为只有一个 `UnitPrice` =20 的 `UnitSales` 值。 |
| `Only({<UnitPrice={15}>} UnitSales)` | NULL，因为有两个 `UnitPrice` = 15 的 `UnitSales` 值。 |

**示例中所使用的数据：**

`ProductData:` `LOAD * inline [` `Customer|Product|UnitSales|UnitPrice` `Astrida|AA|4|16` `Astrida|AA|10|15` `Astrida|BB|9|9` `Betacab|BB|5|10` `Betacab|CC|2|20` `Betacab|DD||25` `Canutility|AA|8|15` `Canutility|CC||19` `] (delimiter is '|');`

表格形式的示例数据

| Customer | Product | UnitSales | UnitPrice |
| --- | --- | --- | --- |
| Astrida | AA | 4 | 16 |
| Astrida | AA | 10 | 15 |
| Astrida | BB | 9 | 9 |
| Betacab | BB | 5 | 10 |
| Betacab | CC | 2 | 20 |
| Betacab | DD | - | 25 |
| Canutility | AA | 8 | 15 |
| Canutility | CC | - | 19 |

## 了解详情

* [集合分析和集合表达式](https://help.qlik.com/zh-CN/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [定义聚合范围](https://help.qlik.com/zh-CN/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)