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/lubLAG()zgodnie z potrzebami.
To ćwiczenie jest częścią kursu
SQL Server średnio zaawansowany
Instrukcje do ćwiczenia
- Napisz zapytanie T-SQL, które dla każdego terytorium:
- Przesuwa wartości w kolumnie
OrderDateo jeden wiersz w dół. Nazwij tę kolumnęPreviousOrder. - Przesuwa wartości w kolumnie
OrderDateo jeden wiersz w górę. Nazwij tę kolumnęNextOrder. Pamiętaj, żeby użyć PARTITION BY dla terytorium.
- Przesuwa wartości w kolumnie
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