FirstSortedValue  — funkcja skryptu
                Funkcja FirstSortedValue() zwraca wartość z wyrażenia podanego argumentem value, która odpowiada wynikowi posortowania według argumentu sort_weight z uwzględnieniem argumentu rank (jeśli został podany). W przypadku uzyskania więcej niż jednej wartości o takim samym wyniku sort_weight dla podanej wartości argumentu rank funkcja zwraca NULL.
Sortowane wartości są iterowane po liczbie rekordów (zgodnie z definicją z klauzuli group by) lub agregowane w pełnym zestawie danych, jeśli nie określono klauzuli group by.
Składnia:
                    
Typ zwracanych danych: podwójny
Argumenty:
| Argument | Opis | 
|---|---|
| value Expression | Funkcja znajduje wartość wyrażenia value odpowiadającą wynikowi sortowania argumentu sort_weight. | 
| sort-weight Expression | 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 Expression | 
                                 Podanie dla parametru rank wartości „n” większej niż 1 spowoduje zwrócenie n-tej wartości w kolejności sortowania.  | 
                        
| 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.  | 
                        
Przykłady i wyniki:
Dodaj przykładowy skrypt do dokumentu i uruchom go. Następnie dodaj do arkusza w swoim dokumencie co najmniej pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.
Przykład 1:
Temp:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|CustomerID
Astrida|AA|1|10|1
Astrida|AA|7|18|1
Astrida|BB|4|9|1
Astrida|CC|6|2|1
Betacab|AA|5|4|2
Betacab|BB|2|5|2
Betacab|DD|12|25|2
Canutility|AA|3|8|3
Canutility|CC|13|19|3
Divadip|AA|9|16|4
Divadip|AA|10|16|4
Divadip|DD|11|10|4
] (delimiter is '|');
FirstSortedValue:
LOAD Customer,FirstSortedValue(Product, UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;
| Pole wynikowe (Customer) | Wartość wynikowa (MyProductWithSmallestOrderByCustomer) | 
|---|---|
| Astrida | CC | 
| Betacab | AA | 
| Canutility | AA | 
| Divadip | DD | 
Funkcja sortuje wartości UnitSales od najmniejszej do największej, wyszukując wartość Customer z najmniejszą wartością UnitSales, co odpowiada najmniejszemu zamówieniu.
Ponieważ CC odpowiada najmniejszemu zamówieniu (wartość UnitSales=2) dla Astrida klienta. AA odpowiada najmniejszemu zamówieniu (4) dla Betacab klienta, AA odpowiada najmniejszemu zamówieniu (8) dla Canutility klienta, a DD odpowiada najmniejszemu zamówieniu (10) dla Divadip klienta.
Przykład 2:
Zakładając, że tabela Temp została załadowana jak w poprzednim przykładzie:
LOAD Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer;
| Pole wynikowe (Customer) | Wartość wynikowa (MyProductWithLargestOrderByCustomer) | 
|---|---|
| Astrida | AA | 
| Betacab | DD | 
| Canutility | CC | 
| Divadip | - | 
Argument sort_weight poprzedza znak minus, dlatego funkcja sortuje wartości od największych.
Ponieważ AA odpowiada największemu zamówieniu (wartość UnitSales:18) dla Astrida klienta, DD odpowiada największemu zamówieniu (12) dla Betacab klienta, a CC odpowiada największemu zamówieniu (13) dla Canutility klienta. Istnieją dwie identyczne wartości największego zamówienia (16) dla Divadip, klienta, w wyniku czego uzyskuje się wynik Null.
Przykład 3:
Zakładając, że tabela Temp została załadowana jak w poprzednim przykładzie:
LOAD Customer,FirstSortedValue(distinct Product, -UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;
| Pole wynikowe (Customer) | Wartość wynikowa (MyProductWithLargestOrderByCustomer) | 
|---|---|
| Astrida | AA | 
| Betacab | DD | 
| Canutility | CC | 
| Divadip | AA | 
Sytuacja wygląda tak samo jak w poprzednim przykładzie — jedynym wyjątkiem jest użycie kwalifikatora distinct. Powoduje to zignorowanie powielonego wyniku Divadip, umożliwiając zwrot wartości innych niż Null.