FirstSortedValue  — функция диаграммы
                Параметр FirstSortedValue() возвращает значение из выражения, указанного в элементе value. Значение элемента соответствует результату сортировки по аргументу sort_weight, например, названию продукта с самой низкой стоимостью единицы. N-ное значение в порядке сортировки можно указать в rank. Если в результате больше одного значения имеют один и тот же элемент sort_weight для указанного элемента rank, функция возвращает значение NULL.
Синтаксис:
FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] 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 стоит перед аргументами функции, вычисление выполняется по всем возможным значениям, указанным в текущих выборках, а не только в тех, которые относятся к значению текущего измерения, т. е. измерения диаграммы игнорируются. При использовании выражения TOTAL [<fld {.fld}>], где префикс TOTAL предшествует списку из одного или нескольких имен полей, выступающих в качестве подмножества переменных измерения диаграммы, создается подмножество всех возможных значений.  | 
                        
Примеры и результаты:
| 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). Используйте префикс 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 '|');