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.

Syntax:  

FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])

Return data type: duale

Arguments:  

Argomento Descrizione
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.

Definizione dell'ambito di aggregazione

Examples and results:  

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