Доступ до значень наступного рядка
За допомогою функції LEAD() ви можете отримати доступ до даних з наступного рядка в межах того самого запиту без використання оператора GROUP BY. Так можна легко порівнювати значення в упорядкованому списку.
Синтаксис:
LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
У цій вправі ви попрактикуєтеся порівнювати значення з поточного рядка зі значеннями з наступного рядка.
Ви виберете інформацію про виборців із France і впорядкуєте результати за загальною кількістю голосів у зростальному порядку. Мета — проаналізувати, як кількість голосів кожного виборця порівнюється з кількістю голосів, зафіксованих для наступної особи у списку.
Ця вправа є частиною курсу
Функції для обробки даних у SQL Server
Інструкції до вправи
- Створіть новий стовпець, який показує кількість голосів, зафіксованих для наступної особи у списку.
- Створіть новий стовпець із різницею між
total_votesпоточного виборця та голосами наступної особи.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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;