FirstSortedValue
FirstSortedValue() restituisce il valore dall'espressione specificata in value che corrisponde al risultato dell'ordinamento dell'argomentosort_weight, tenendo in considerazione rank, se specificato. Se più valori risultanti condividono lo stesso sort_weight per il rank specificato, la funzione restituisce NULL.
Sintassi:
FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])
Tipo di dati restituiti: duale
Argomenti:
- value: Campo di output. La funzione trova il valore dell’espressione value che corrisponde al risultato della classificazione di sort_weight.
- sort_weight: Campo di input. L'espressione contenente i dati da ordinare. Viene trovato il primo valore (il più basso) di sort_weight dal quale viene determinato il valore corrispondente dell'espressione value. Inserendo un segno meno davanti a sort_weight, la funzione restituisce invece l'ultimo valore ordinato (il più elevato).
- rank: Dichiarando un valore "n" di rank maggiore di 1, si otterrà il valore n-esimo nell'ordine.
- SetExpression: Per impostazione predefinita, la funzione di aggregazione aggrega la serie di possibili record definiti dalla selezione. È possibile definire una serie di record alternativa mediante un'espressione Set Analysis.
- DISTINCT: Se la parola DISTINCT è riportata prima degli argomenti della funzione, i duplicati risultanti dalla valutazione degli argomenti della funzione vengono ignorati.
- TOTAL: Se la parola TOTAL viene riportata prima degli argomenti della funzione, il calcolo verrà effettuato su tutti i valori possibili dati dalle selezioni attuali, e non solo su quelli relativi al valore dimensionale attuale, vale a dire che verranno ignorate le dimensioni del grafico. Il qualificatore TOTAL può essere seguito da un elenco di uno o più nomi di campo tra parentesi angolari <fld>. Questi nomi di campo devono essere un sottogruppo delle variabili di dimensione del grafico.
Esempi:
Esempio | Risultato |
---|---|
firstsortedvalue (Product, UnitPrice) |
BB, che corrisponde al Product con l'UnitPrice più basso (9). |
firstsortedvalue (Product, UnitPrice, 2) |
BB, che corrisponde al Product con il secondo UnitPrice più basso (10). |
firstsortedvalue (Customer, -UnitPrice, 2) |
Betacab, che corrisponde al Customer con il Product con il secondo UnitPrice più elevato (20). |
firstsortedvalue (Customer, UnitPrice, 3) |
NULL, perché vi sono due valori di Customer (Astrida e Canutility) con lo stesso valore rank (terzo più basso) UnitPrice (15). Usare il qualificatore distinct per accertarsi che non insorgano risultati null. |
firstsortedvalue (Customer, -UnitPrice*UnitSales, 2) |
Canutility, che corrisponde all'elemento Customer con il secondo valore di ordinamento delle vendite più elevato UnitPrice moltiplicato per UnitSales (120). |
Dati utilizzati negli esempi:
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 '|');
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 |