Zacznij terazZacznij za darmo

Poprzednie i następne wartości

Co zrobić, gdy chcesz przesunąć wartości w kolumnie o jeden wiersz w górę lub w dół? Możesz zastosować dokładnie te same kroki co w poprzednim ćwiczeniu, ale z dwiema nowymi funkcjami: LEAD() – dla następnej wartości, i LAG() – dla poprzedniej. Postępuj według tego schematu:

  • Najpierw utwórz partycje.
  • Następnie posortuj według wybranej kolumny.
  • Na koniec użyj funkcji LEAD() i/lub LAG() zgodnie z potrzebami.

To ćwiczenie jest częścią kursu

SQL Server średnio zaawansowany

Zobacz kurs

Instrukcje do ćwiczenia

  • Napisz zapytanie T-SQL, które dla każdego terytorium:
    • Przesuwa wartości w kolumnie OrderDate o jeden wiersz w dół. Nazwij tę kolumnę PreviousOrder.
    • Przesuwa wartości w kolumnie OrderDate o jeden wiersz w górę. Nazwij tę kolumnę NextOrder. Pamiętaj, żeby użyć PARTITION BY dla terytorium.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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
Edytuj i uruchom kod