Hämta värden från nästa rad
Med funktionen LEAD() kan du hämta data från en efterföljande rad i samma fråga, utan att använda GROUP BY. Det gör det enkelt att jämföra värden i en sorterad lista.
Syntaxen ser ut så här:
LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
I den här övningen får du öva på att jämföra värden från den aktuella raden med värden från nästa rad.
Du väljer information om väljare från Frankrike och sorterar resultaten efter totalt antal röster i stigande ordning. Målet är att analysera hur antalet röster från varje väljare förhåller sig till antalet röster registrerade för nästa person i listan.
Den här övningen är en del av kursen
Funktioner för datamanipulering i SQL Server
Övningsinstruktioner
- Skapa en ny kolumn som visar antalet röster registrerade för nästa person i listan.
- Skapa en ny kolumn med skillnaden mellan den aktuella väljarens
total_votesoch rösterna för nästa person.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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;