# FirstSortedValue — funkcja wykresu

Funkcja FirstSortedValue() zwraca wartość z wyrażenia określonego w argumencie value, który odpowiada wynikowi sortowania argumentu sort\_weight, na przykład nazwie produktu o najniższej cenie jednostkowej. N-ta wartość w kolejności sortowania może zostać określona w argumencie rank. W przypadku uzyskania więcej niż jednej wartości o takim samym wyniku sort\_weight dla podanej wartości argumentu rank funkcja zwraca NULL.

Składnia:

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

Typ zwracanych danych: dual

Argumenty:

Argumenty

| Argument | Opis |
| --- | --- |
| value | Pole danych wyjściowych Funkcja znajduje wartość wyrażenia value odpowiadającą wynikowi sortowania argumentu sort\_weight. |
| sort\_weight | Pole wejściowe Wyrażenie zawierające dane do sortowania. Znajdowana jest pierwsza (najniższa) wartość argumentu sort\_weight, na podstawie której określana jest wartość wyrażenia podanego argumentem value. Jeśli przed argumentem sort\_weight zostanie podany znak minusa, funkcja zwróci ostatnią (najwyższą) wartość z sortowania. |
| rank | Podanie dla parametru rank wartości „n” większej niż 1 spowoduje zwrócenie n-tej wartości w kolejności sortowania. |
| SetExpression | Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych wierszy zdefiniowanym przez selekcję. Alternatywny zestaw wierszy można zdefiniować za pomocą wyrażenia analizy zestawów. |
| DISTINCT | Jeśli przed argumentami funkcji występuje słowo DISTINCT, wówczas duplikaty wynikające z wyników obliczenia argumentów funkcji są pomijane. |
| TOTAL | Jeśli słowo TOTAL występuje przed argumentami funkcji, wówczas obliczenie jest wykonywane względem wszystkich możliwych wartości z uwzględnieniem bieżących selekcji, nie tylko tych należących do bieżącej wartości wymiaru, to znaczy z pominięciem wymiarów wykresu.<br><br>Korzystając z polecenia TOTAL [&lt;fld {.fld}&gt;], gdzie po kwalifikatorze TOTAL podana jest lista nazw pól stanowiących podzbiór zmiennych wymiarów wykresu, można utworzyć podzbiór wszystkich możliwych wartości.<br><br>[Określenie zakresu agregacji](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Przykłady i wyniki:

Dane

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

Przykłady i wyniki

| Przykład | Wynik |
| --- | --- |
| `firstsortedvalue (Product, UnitPrice)` | BB, czyli `Product` z najniższą wartością w kolumnie `UnitPrice`(9). |
| `firstsortedvalue (Product, UnitPrice, 2)` | BB, czyli `Product` z drugą najniższą wartością w kolumnie `UnitPrice`(10). |
| `firstsortedvalue (Customer, -UnitPrice, 2)` | Betacab, czyli `Customer`, który ma `Product` z drugą najwyższą wartością w kolumnie `UnitPrice`(20). |
| `firstsortedvalue (Customer, UnitPrice, 3)` | NULL, ponieważ są dwie wartości w kolumnie `Customer` (Astrida i Canutility) z tą samą wartością rank (trzecia najniższa wartość) w kolumnie `UnitPrice`(15).<br><br>Aby zapewnić, że nie zostaną niespodziewanie zwrócone wartości null, należy skorzystać z kwalifikatora distinct. |
| `firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)` | Canutility, czyli `Customer` z drugą najwyższą wartością w kolumnie `UnitPrice` pomnożoną przez wartość w kolumnie `UnitSales` (120). |

Dane zastosowane w przykładach:

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

## Dowiedz się więcej

* [Analiza zestawów](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Określenie zakresu agregacji](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)