# 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 [&lt;fld {,fld}&gt;]] 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.<br><br>Utilizzando TOTAL [&lt;fld {.fld}&gt;], 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.<br><br>[Definizione dell'ambito di aggregazione](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Esempio: espressioni del grafico

| Esempio | Risultato |
| --- | --- |
| `FirstSortedValue (Product, UnitPrice)` | Restituisce il valore `Product` con il più basso `UnitPrice`. |
| `FirstSortedValue (Product, UnitPrice, 2)` | Restituisce il valore `Product` con il secondo `UnitPrice` più basso. |
| `FirstSortedValue (Customer, -UnitPrice, 2)` | Restituisce il `Customer` con il valore `Product` con il secondo `UnitPrice` più alto. |
| `FirstSortedValue (Customer, -UnitPrice*UnitSales, 2)` | Restituisce il `Customer` con il secondo valore di ordinamento più elevato per le vendite, `UnitPrice` moltiplicato per `UnitSales`. |

## Esempio: principi fondamentali della funzione FirstSortedValue

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/firstsortedvalue.htm)

#### Espressione del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `Customer`

  * `Product`

  * `UnitSales`

  * `UnitPrice`

Script di caricamento

```
Example:
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 '|');
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questi campi come misure:

* `=FirstSortedValue (Product, UnitPrice)`, per calcolare il prodotto con il prezzo unitario più basso.

* `=FirstSortedValue (Product, UnitPrice, 2)`, per calcolare il prodotto con il secondo prezzo unitario più basso.

* `=FirstSortedValue (Customer, -UnitPrice, 2)`, per calcolare il cliente con il prodotto che ha il secondo prezzo unitario più alto.

* `=FirstSortedValue (Customer, UnitPrice, 3)`, per calcolare il cliente con il prodotto che ha il terzo prezzo unitario più alto.

* `=FirstSortedValue (Customer, -UnitPrice*UnitSales, 2)` per calcolare il cliente con il secondo valore di ordinamento più elevato per le vendite, `UnitPrice` moltiplicato per `UnitSales`.

Results table

| FirstSortedValue (Product, UnitPrice) | FirstSortedValue (Product, UnitPrice, 2) | FirstSortedValue (Customer, -UnitPrice, 2) | FirstSortedValue (Customer, UnitPrice, 3) | FirstSortedValue (Customer, -UnitPrice\*UnitSales, 2) |
| --- | --- | --- | --- | --- |
| BB | BB | Betacab | - | Canutility |

La prima colonna restituisce il valore `BB`, poiché questo è il prodotto con il valore `UnitPrice` più basso (`9`).

La seconda colonna restituisce il valore `BB`, poiché questo è il prodotto con il secondo valore `UnitPrice` più basso (`10`).

La terza colonna restituisce il valore `Betacab`, che è il `Customer` con il `Product` che ha il secondo valore `UnitPrice` più alto (`20`).

La quarta colonna restituisce `NULL`, perché sono presenti due valori di `Customer` (`Astrida` e `Canutility`) con lo stesso valore di classificazione `UnitPrice`, il terzo più basso (`15`).

La quinta colonna restituisce `Canutility`, che è il `Customer` con il secondo valore di ordinamento più elevato per le vendite, `UnitPrice` moltiplicato per `UnitSales` (`120`).

## Esempio: scenario per la funzione FirstSortedValue

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/firstsortedvalue.htm)

#### Espressione del grafico

Panoramica

Un set di dati contiene i dati sulle vendite per i primi tre mesi dell'anno. Il responsabile regionale vuole identificare i prodotti che vendono di più e di meno per pianificare le scorte future.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `Date`

  * `SalesProduct`

  * `Category`

  * `Sales`

Script di caricamento

```
Example:
Load * inline [
Date,SalesProduct, Category, Sales
2024-01-01, Apple, Fruit, 100
2024-01-15, Banana, Fruit, 80
2024-01-30, Carrot, Vegetable, 50
2024-02-05, Apple, Fruit, 120
2024-02-20, Banana, Fruit, 90
2024-02-28, Carrot, Vegetable, 60
2024-03-10, Apple, Fruit, 110
2024-03-22, Banana, Fruit, 85
2024-03-31, Carrot, Vegetable, 55
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:

* `Category`

Creare le seguenti misure:

* `=FirstSortedValue(SalesProduct, -Sales)`, per calcolare il prodotto più venduto in ogni categoria.

* `=FirstSortedValue(TOTAL SalesProduct, -Sales)`, per calcolare il prodotto più venduto in generale.

* `=FirstSortedValue(TOTAL SalesProduct, Sales)`, per calcolare il prodotto meno venduto in generale.

Results table

| Category | FirstSortedValue(SalesProduct, -Sales) | FirstSortedValue(TOTAL SalesProduct, -Sales) | FirstSortedValue(TOTAL SalesProduct, Sales) |
| --- | --- | --- | --- |
| Fruit | Apple | Apple | Carrot |
| Vegetable | Carrot | Apple | Carrot |

I risultati indicano che `Apple` e `Carrot` sono i prodotti più venduti nelle rispettive categorie, `Fruit` e `Vegetable`. Tuttavia, in tutte le categorie, `Apple` è stato il prodotto più venduto e `Carrot` è stato il prodotto meno venduto.

## Ulteriori informazioni

* [Analisi di gruppo](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Definizione dell'ambito di aggregazione](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)