Valori anterioare și următoare
Cum procedezi dacă vrei să deplasezi valorile dintr-o coloană cu un rând în sus sau în jos? Poți urma exact aceiași pași ca în exercițiul anterior, dar cu două funcții noi: LEAD(), pentru valoarea următoare, și LAG(), pentru valoarea anterioară. Iată pașii de urmat:
- Mai întâi, creează partițiile
- Apoi, ordonează după o anumită coloană
- În final, folosește funcțiile
LEAD()și/sauLAG()în funcție de necesități
Acest exercițiu face parte din cursul
SQL Server intermediar
Instrucțiuni pentru exercițiu
- Scrie o interogare T-SQL care, pentru fiecare teritoriu:
- Deplasează valorile din
OrderDatecu un rând în jos. Numește această coloanăPreviousOrder. - Deplasează valorile din
OrderDatecu un rând în sus. Numește această coloanăNextOrder. Va trebui să folosești PARTITION BY pentru teritoriu
- Deplasează valorile din
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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