НачатьНачать бесплатно

Предыдущее и следующее значения

Что если нужно сдвинуть значения в столбце на одну строку вверх или вниз? Для этого используется тот же подход, что и в предыдущем упражнении, но с двумя новыми функциями: 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
Редактировать и запускать код