Valori precedente e successivo
E se volessi spostare i valori in una colonna di una riga verso l’alto o verso il basso? Puoi seguire gli stessi passaggi dell’esercizio precedente ma con due nuove funzioni: LEAD(), per il valore successivo, e LAG(), per il valore precedente. Quindi procedi così:
- Per prima cosa, crea le partizioni
- Poi ordina in base a una certa colonna
- Infine, usa le funzioni
LEAD()e/oLAG()in base a ciò di cui hai bisogno
Questo esercizio fa parte del corso
SQL Server intermedio
Istruzioni dell'esercizio
- Scrivi una query T-SQL che, per ogni territorio:
- Sposti i valori in
OrderDatedi una riga in basso. Chiama questa colonnaPreviousOrder. - Sposti i valori in
OrderDatedi una riga in alto. Chiama questa colonnaNextOrder. Dovrai usare PARTITION BY sul territorio
- Sposti i valori in
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