Werte aus der vorherigen Zeile abrufen
Mit der Funktion LAG() in einer Abfrage kannst du auf Zeilen zugreifen, die vor der aktuellen liegen.
Die Syntax lautet:
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
In dieser Übung verwendest du diese Funktion in deiner Abfrage. Du analysierst die Bewertungen der Schokoladentafeln, die von einer Firma namens "Fruition" produziert werden.
Diese Firma stellt Schokolade mit Kakao aus verschiedenen Regionen der Welt her.
Du möchtest prüfen, ob es bei Tafeln aus demselben Herkunftsort einen Zusammenhang zwischen dem Kakaoanteil und der erhaltenen Bewertung gibt. Dafür vergleichst du den Kakaoanteil jeder Tafel mit dem Anteil der Tafel, die die vorherige Bewertung erhalten hat. Anschließend berechnest du die Differenz zwischen diesen Werten und interpretierst die Ergebnisse.
Diese Übung ist Teil des Kurses
Funktionen zur Datenmanipulation in SQL Server
Anleitung zur Übung
- Erstelle eine neue Spalte, die den Kakaoanteil der Schokoladentafel zeigt, die eine niedrigere Bewertung erhalten hat und deren Kakao aus demselben Herkunftsort kommt (
broad_bean_originist gleich). - Erstelle eine neue Spalte mit der Differenz zwischen dem aktuellen Kakaoanteil der Tafel und dem Anteil der vorherigen Tafel.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
SELECT
broad_bean_origin AS bean_origin,
rating,
cocoa_percent,
-- Retrieve the cocoa % of the bar with the previous rating
___(___)
OVER(___ broad_bean_origin ORDER BY ___) AS percent_lower_rating
FROM ratings
WHERE company = 'Fruition'
ORDER BY broad_bean_origin, rating ASC;