Доступ к значениям следующей строки
Функция LEAD() позволяет обращаться к данным из следующей строки в рамках того же запроса — без использования оператора GROUP BY. Это удобно для сравнения значений в упорядоченном списке.
Синтаксис функции:
LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
В этом упражнении вы научитесь сравнивать значения текущей строки со значениями следующей строки.
Вы выберете сведения об избирателях из Франции и отсортируете результаты по общему числу голосов в порядке возрастания. Цель — проанализировать, как количество голосов каждого избирателя соотносится с количеством голосов следующего человека в списке.
Это упражнение является частью курса
Функции для работы с данными в 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;