Föregående och nästa värden
Vad gör du om du vill förskjuta värdena i en kolumn ett steg upp eller ned? Du använder exakt samma tillvägagångssätt som i föregående övning, men med två nya funktioner: LEAD() för nästa värde och LAG() för föregående värde. Följ dessa steg:
- Skapa först partitioner
- Sortera sedan efter en viss kolumn
- Använd slutligen funktionerna
LEAD()och/ellerLAG()efter behov
Den här övningen är en del av kursen
SQL Server för medelnivå
Övningsinstruktioner
- Skriv en T-SQL-fråga som för varje territorium:
- Förskjuter värdena i
OrderDateett steg nedåt. Kalla kolumnenPreviousOrder. - Förskjuter värdena i
OrderDateett steg uppåt. Kalla kolumnenNextOrder. Du behöver använda PARTITION BY för territoriet
- Förskjuter värdena i
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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