Only
Only() 用于返回一个值(如果从聚合数据得出一个且只有一个可能值)。例如,如果有多个产品的单价为 9,则只搜索单价为 9 的产品将会返回 NULL。
语法:
Only([{SetExpression}] [TOTAL [<fld {,fld}>]] expr)
返回数据类型: 双
参数:
- expr: 表达式或字段包含要度量的数据。
- SetExpression: 聚合函数会默认聚合选择项定义的可能记录集合。可选记录集合可由集合分析表达式定义。
- TOTAL: 如果在函数参数前面出现单词 TOTAL,则计算给出当前选择项的所有可能值,而不只是属于当前维度值的那些值,即它会忽略图表维度。 TOTAL 限定符后可能紧跟着一系列由尖括号括起来的一个或多个字段名 <fld>。这些字段名应该是图表维度变量的子集。
提示注释如果在样本数据中有多个可能的值时您想要 NULL 结果,则使用 Only()。
示例:
示例 | 结果 |
---|---|
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 |