Vai al contenuto principale

FirstSortedValue - funzione di script

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.

I valori classificati vengono ripetuti su un insieme di record, come definito da una clausola group by, o aggregati tra la serie di dati completa, qualora la clausola group by non sia stata definita.

Sintassi:  

FirstSortedValue ([ distinct ] value, sort-weight [, rank ])

Tipo di dati restituiti: duale

Argomenti:  

Argomenti FirstSortedValue
Argomento Descrizione
value Expression La funzione trova il valore dell’espressione value che corrisponde al risultato della classificazione di sort_weight.
sort-weight Expression 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 Expression

Dichiarando un valore "n" di rank maggiore di 1, si otterrà il valore n-esimo nell'ordine.

distinct

Se la parola DISTINCT è riportata prima degli argomenti della funzione, i duplicati risultanti dalla valutazione degli argomenti della funzione vengono ignorati.

Esempi e risultati:  

Aggiungere lo script di esempio al documento ed eseguirlo. Aggiungere quindi a un foglio del documento almeno i campi elencati nella colonna dei risultati per visualizzare il risultato.

Esempio 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;

 

Risultati esempio 1
Campo risultato (cliente) Valore risultato (MyProductWithSmallestOrderByCustomer)
Astrida CC
Betacab AA
Canutility AA
Divadip DD

La funzione classifica UnitSales in ordine crescente, accedendo al Customer con il valore di UnitSales minimo, l’ordine più piccolo.

Perché CC corrisponde all’ordine più piccolo (valore di UnitSales=2) per cliente Astrida. AA corrisponde all’ordine più piccolo (4) valore per il cliente Betacab, AA corrisponde all’ordine più piccolo (8) per il cliente Canutility e DD corrisponde all’ordine più piccolo (10) per il cliente Divadip.

Esempio 2:  

Presupponendo che la tabella Temp venga caricata come nell'esempio precedente:

LOAD Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer;

 

Risultati esempio 2
Campo risultato (cliente) Valore risultato (MyProductWithLargestOrderByCustomer)
Astrida AA
Betacab DD
Canutility CC
Divadip -

il segno meno precede l’argomento sort_weight, in modo tale che la funzione classifichi prima i più elevati.

Perché AA corrisponde all'ordine più elevato (valore di UnitSales:18) per il cliente Astrida, DD corrisponde all'ordine più elevato (12) per il cliente Betacab e CC corrisponde all'ordine più elevato (13) per il cliente Canutility. Sono presenti due valori identici per l’ordine più elevato (16) per il cliente Divadip, pertanto viene prodotto un risultato null.

Esempio 3:  

Presupponendo che la tabella Temp venga caricata come nell'esempio precedente:

LOAD Customer,FirstSortedValue(distinct Product, -UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;

 

Risultati esempio 3
Campo risultato (cliente) Valore risultato (MyProductWithLargestOrderByCustomer)
Astrida AA
Betacab DD
Canutility CC
Divadip AA

si verifica la stessa situazione dell’esempio precedente, tranne per il fatto che viene utilizzato il qualificatore distinct. Ciò comporta un risultato doppio per Divadip che deve non deve essere preso in considerazione, consentendo la presentazione di un valore non null.

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!

Partecipa al programma Analytics Modernization

Remove banner from view

Modernizza senza compromettere le tue preziose app QlikView con il programma Analytics Modernization. Fare clic qui per maggiori informazioni o per contattarci: ampquestions@qlik.com