Доступ до значень з попереднього рядка
Використовуючи у запиті функцію 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;