# FirstSortedValue - 图表函数

FirstSortedValue() 将返回来自 value 指定表达式的值，相当于 sort\_weight 参数排序的结果，例如，单价最低的产品名称。排序顺序中的第 n 个值，可在 rank 中指定。如果在指定 rank 下多个结果值共享同一 sort\_weight，则此函数返回 NULL。

语法：

FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [&lt;fld {,fld}&gt;]] value, sort\_weight [,rank])

返回数据类型： 双

参数：

参数

| 参数 | 描述 |
| --- | --- |
| value | 输出字段。 此函数用于查找表达式 value 的值，相当于 sort\_weight 的排序结果。 |
| sort\_weight | 输入字段。 该表达式包含要排序的数据。找到 sort\_weight 的第一个（最低）值，由 value 表达式的对应值确定。如果在 sort\_weight 前面加一个减号，则此函数会返回最后一个（最高）排序值。 |
| rank | 通过指定一个大于 1 的 rank “n”，您会获得第 n 个排序值。 |
| SetExpression | 聚合函数会默认聚合选择项定义的可能记录集合。可选记录集合可由集合分析表达式定义。 |
| DISTINCT | 如果在函数参数前出现单词 DISTINCT，则将忽略计算该函数参数生成的副本。 |
| TOTAL | 如果在函数参数前面出现单词 TOTAL，则计算给出当前选择项的所有可能值，而不只是属于当前维度值的那些值，即它会忽略图表维度。<br><br>通过使用 TOTAL [&lt;fld {.fld}&gt;]（其中 TOTAL 限定符后跟一个或多个字段名称作为图表维度变量的子集的列表），您可以创建总可能值的子集。<br><br>[定义聚合范围](https://help.qlik.com/zh-CN/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

示例和结果：

数据

| 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 |

示例和结果

| 示例 | 结果 |
| --- | --- |
| `firstsortedvalue (Product, UnitPrice)` | BB，这是具有最低`UnitPrice`的`Product` (9)。 |
| `firstsortedvalue (Product, UnitPrice, 2)` | BB，这是具有第二低`Product`的`UnitPrice` (10)。 |
| `firstsortedvalue (Customer, -UnitPrice, 2)` | Betacab，这是具有第二高`UnitPrice``Product`的`Customer` (20)。 |
| `firstsortedvalue (Customer, UnitPrice, 3)` | NULL，因为有两个`Customer`值（Astrida 和 Canutility）有相同的rank（倒数第三）`UnitPrice` (15)。<br><br>使用 distinct 限定符来确保不会出现意外的空结果。 |
| `firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)` | Canutility，这是具有第二高销售订单值（`UnitPrice` 乘以 `UnitSales`）的 `Customer` (120)。 |

示例中所使用的数据：

`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 '|');`

## 了解详情

* [集合分析](https://help.qlik.com/zh-CN/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [定义聚合范围](https://help.qlik.com/zh-CN/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)