Попередні та наступні значення
А що, якщо потрібно зсунути значення у стовпці на один рядок угору або вниз? Ви можете виконати ті самі кроки, що й у попередній вправі, але з двома новими функціями: LEAD() — для наступного значення, та LAG() — для попереднього. Отже, виконайте такі кроки:
- Спочатку створіть розподіли
- Далі впорядкуйте за певним стовпцем
- Нарешті, використайте функції
LEAD()та/абоLAG()відповідно до вашої задачі
Ця вправа є частиною курсу
Середній рівень SQL Server
Інструкції до вправи
- Напишіть запит T-SQL, який для кожної території:
- Зсуває значення в
OrderDateна один рядок униз. Назвіть цей стовпецьPreviousOrder. - Зсуває значення в
OrderDateна один рядок угору. Назвіть цей стовпецьNextOrder. Вам потрібно виконати PARTITION BY за територією
- Зсуває значення в
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
SELECT TerritoryName, OrderDate,
-- Specify the previous OrderDate in the window
___(OrderDate)
-- Over the window, partition by territory & order by order date
___(___ BY ___ ___ BY ___) AS PreviousOrder,
-- Specify the next OrderDate in the window
___(OrderDate)
-- Create the partitions and arrange the rows
___ AS NextOrder
FROM Orders