Accedere ai valori della riga successiva
Con la funzione LEAD() puoi accedere ai dati della riga successiva nella stessa query, senza usare l’istruzione GROUP BY. In questo modo puoi confrontare facilmente i valori di un elenco ordinato.
Questa è la sintassi:
LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
In questo esercizio ti abituerai a confrontare i valori della riga corrente con quelli della riga successiva.
Selezionerai le informazioni sugli elettori dalla Francia e ordinerai i risultati per voti totali in ordine crescente. L’obiettivo è analizzare come il numero di voti di ciascun elettore si confronta con il numero di voti registrati per la persona successiva nell’elenco.
Questo esercizio fa parte del corso
Funzioni per manipolare i dati in SQL Server
Istruzioni dell'esercizio
- Crea una nuova colonna che mostri il numero di voti registrati per la persona successiva nell’elenco.
- Crea una nuova colonna con la differenza tra il
total_votesdell’elettore corrente e i voti della persona successiva.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
SELECT
first_name,
last_name,
total_votes AS votes,
-- Select the number of votes of the next voter
___(___) OVER (___ total_votes) AS votes_next_voter,
-- Calculate the difference between the number of votes
LEAD(___) ___ (ORDER BY ___) - total_votes AS votes_diff
FROM voters
WHERE country = 'France'
ORDER BY total_votes;