ÎncepețiÎncepe gratuit

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/sau LAG() în funcție de necesități

Acest exercițiu face parte din cursul

SQL Server intermediar

Vezi cursul

Instrucțiuni pentru exercițiu

  • Scrie o interogare T-SQL care, pentru fiecare teritoriu:
    • Deplasează valorile din OrderDate cu un rând în jos. Numește această coloană PreviousOrder.
    • Deplasează valorile din OrderDate cu un rând în sus. Numește această coloană NextOrder. Va trebui să folosești PARTITION BY pentru teritoriu

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
Editează și rulează codul