Dostęp do wartości z następnego wiersza
Funkcja LEAD() umożliwia dostęp do danych z kolejnego wiersza w ramach tego samego zapytania – bez konieczności używania instrukcji GROUP BY. Dzięki temu można łatwo porównywać wartości z uporządkowanej listy.
Składnia jest następująca:
LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
W tym ćwiczeniu zapoznasz się z porównywaniem wartości z bieżącego wiersza z wartościami z następnego wiersza.
Wybierzesz informacje o wyborcach z Francji i ułożysz wyniki według łącznej liczby głosów w kolejności rosnącej. Celem jest analiza tego, jak liczba głosów oddanych przez każdego wyborcę wypada na tle liczby głosów kolejnej osoby na liście.
To ćwiczenie jest częścią kursu
Funkcje do manipulowania danymi w SQL Server
Instrukcje do ćwiczenia
- Utwórz nową kolumnę pokazującą liczbę głosów przypisaną kolejnej osobie na liście.
- Utwórz nową kolumnę z różnicą między
total_votesbieżącego wyborcy a liczbą głosów kolejnej osoby.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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;