Vorherige und nächste Werte
Was, wenn du die Werte in einer Spalte um eine Zeile nach oben oder unten verschieben willst? Du kannst genau die gleichen Schritte wie in der vorherigen Übung verwenden, aber mit zwei neuen Funktionen, LEAD()
, für den nächsten Wert und LAG()
, für den vorherigen Wert. Du folgst also diesen Schritten:
- Erstelle zunächst Partitionen
- Dann ordne nach einer bestimmten Spalte
- Verwende schließlich die Funktionen
LEAD()
und/oderLAG()
je nach deinem Bedarf
Diese Übung ist Teil des Kurses
Intermediate SQL Server
Anleitung zur Übung
Schreibe eine T-SQL Abfrage, die für jedes Gebiet gilt:
Verschiebt die Werte in
OrderDate
um eine Zeile nach unten. Rufe diese SpaltePreviousOrder
auf.Verschiebt die Werte in
OrderDate
um eine Zeile nach oben. Rufe diese SpalteNextOrder
auf.
*Du musst das Gebiet PARTITION BY *
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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