# FirstSortedValue — функция диаграммы

Параметр FirstSortedValue() возвращает значение из выражения, указанного в элементе value. Значение элемента соответствует результату сортировки по аргументу sort\_weight, например, названию продукта с самой низкой стоимостью единицы. N-ное значение в порядке сортировки можно указать в rank. Если в результате больше одного значения имеют один и тот же элемент sort\_weight для указанного элемента rank, функция возвращает значение 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 | При указании для элемента rank значения «n» выше 1 будет получено n-ое отсортированное значение. |
| SetExpression | По умолчанию функция агрегирования агрегирует множество возможных записей, определенных выборкой. Альтернативный набор записей может быть определен выражением анализа множества. |
| DISTINCT | Если слово DISTINCT указывается до аргументов функции, все дубликаты, возникшие в результате оценки аргументов функции, будут проигнорированы. |
| TOTAL | Если слово TOTAL стоит перед аргументами функции, вычисление выполняется по всем возможным значениям, указанным в текущих выборках, а не только в тех, которые относятся к значению текущего измерения, т. е. измерения диаграммы игнорируются.<br><br>При использовании выражения TOTAL [&lt;fld {.fld}&gt;], где префикс TOTAL предшествует списку из одного или нескольких имен полей, выступающих в качестве подмножества переменных измерения диаграммы, создается подмножество всех возможных значений.<br><br>[Определение объема агрегирования](https://help.qlik.com/ru-RU/sense/November2024/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, который является элементом `Product`с наименьшим значением `UnitPrice`(9). |
| `firstsortedvalue (Product, UnitPrice, 2)` | Элемент BB, который является элементом `Product` со вторым наименьшим значением `UnitPrice`(10). |
| `firstsortedvalue (Customer, -UnitPrice, 2)` | Элемент Betacab, который является `Customer` с `Product` со вторым наибольшим значением `UnitPrice`(20). |
| `firstsortedvalue (Customer, UnitPrice, 3)` | Значение NULL, поскольку существуют два значения элемента `Customer` (Astrida и Canutility) с одинаковым значениемrank (третьим наименьшим) `UnitPrice`(15).<br><br>Используйте префикс distinct, чтобы убедиться, что не возникнет нулевой результат. |
| `firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)` | Значение Canutility, которое является элементом `Customer` со вторым наибольшим значением порядка продажи `UnitPrice`, умноженным на элемент `UnitSales` (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/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Определение объема агрегирования](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)