IniziaInizia gratis

Previous and next values

What if you want to shift the values in a column by one row up or down? You can use the exact same steps as in the previous exercise but with two new functions, LEAD(), for the next value, and LAG(), for the previous value. So you follow these steps:

  • First, create partitions
  • Then, order by a certain column
  • Finally, use the LEAD() and/or LAG() functions as per your requirement

Questo esercizio fa parte del corso

Intermediate SQL Server

Visualizza il corso

Istruzioni dell'esercizio

  • Write a T-SQL query that for each territory:
    • Shifts the values in OrderDate one row down. Call this column PreviousOrder.
    • Shifts the values in OrderDate one row up. Call this column NextOrder. You will need to PARTITION BY the territory

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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
Modifica ed esegui il codice