Доступ к значениям предыдущей строки
Функция LAG() позволяет обращаться к строкам, предшествующим текущей.
Синтаксис функции:
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
В этом упражнении вы будете использовать данную функцию в запросе. Вы проанализируете оценки шоколадных батончиков, произведённых компанией "Fruition".
Эта компания выпускает шоколад из какао, выращенного в разных регионах мира.
Ваша задача — проверить, существует ли зависимость между содержанием какао и полученной оценкой для батончиков из одного и того же места производства. Для этого вы сравните процент содержания какао в каждом батончике с аналогичным показателем батончика, получившего предыдущую оценку. Затем вычислите разницу между этими значениями и интерпретируете результаты.
Это упражнение является частью курса
Функции для работы с данными в SQL Server
Инструкции к упражнению
- Создайте новый столбец, в котором будет отображаться процентное содержание какао в шоколадном батончике, получившем более низкую оценку, при условии что какао поступает из того же региона (значение
broad_bean_originсовпадает). - Создайте новый столбец с разницей между процентным содержанием какао в текущем батончике и в предыдущем.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
SELECT
broad_bean_origin AS bean_origin,
rating,
cocoa_percent,
-- Retrieve the cocoa % of the bar with the previous rating
___(___)
OVER(___ broad_bean_origin ORDER BY ___) AS percent_lower_rating
FROM ratings
WHERE company = 'Fruition'
ORDER BY broad_bean_origin, rating ASC;