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 è il valore Product con il più basso UnitPrice (9). |
firstsortedvalue (Product, UnitPrice, 2) | BB, che corrisponde al valore Product con il secondo UnitPrice più basso (10). |
firstsortedvalue (Customer, -UnitPrice, 2) | Betacab, che è Customer con il valore Product con il secondo UnitPrice più alto (20). |
firstsortedvalue (Customer, UnitPrice, 3) | NULL, perché sono presenti due valori di Customer (Astrida e Canutility) con lo stesso rank (terzo più basso) UnitPrice (15). Usare il qualificatore distinct per accertarsi che non si verifichino risultati null non previsti. |
firstsortedvalue (Customer, -UnitPrice*UnitSales, 2) | Canutility, che corrisponde al Customer con il secondo valore di ordinamento UnitPrice più elevato per le vendite 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 '|');