FirstSortedValue - funzione per grafici
FirstSortedValue() restituisce il valore dell’espressione specificata in value che corrisponde al risultato della classificazione dell’argomento a sort_weight, ad esempio, il nome del prodotto con il prezzo unitario più basso. Il valore n nell’ordine di classificazione può essere specificato in rank. 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:
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 correnti e non solo su quelli relativi al valore dimensionale attuale, vale a dire che verranno ignorate le dimensioni del grafico. Utilizzando TOTAL [<fld {.fld}>], dove il qualificatore TOTAL è seguito da un elenco di uno o più nomi di campo come sottogruppo delle variabili di dimensione del grafico, si crea un sottogruppo di tutti i valori possibili. |
Esempi e risultati:
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 '|');