Menu
Coddy logo textTech

LEAD-&-LAG-Funktionen

Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 61 von 72.

Mit den Funktionen LEAD und LAG können wir auf den Wert der aktuellen Zeile n Schritte zurück oder n Schritte voraus zugreifen.

Wenn wir beispielsweise das Verhältnis des Umsatzes eines Unternehmens für die aktuelle Zeile und vor einem Monat berechnen möchten, können wir den Wert des vorherigen Monats extrahieren:

idrevenuemonth
15325
24926
33937
47238
SELECT id, revenue, LAG(revenue, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY id

Dadurch wird die folgende Tabelle erstellt:

idrevenueprev_month_revenue
1532 
2492532
3393492
4723393

So können wir das Verhältnis prev_month_revenue/revenue berechnen.

Wenn wir stattdessen die Funktion LEAD verwenden würden, würde sie den Umsatz des jeweils nächsten Monats jeder Zeile übernehmen:

SELECT id, revenue, LEAD(revenue, 1) OVER (ORDER BY MONTH) as next_month_revenue
FROM table1 ORDER BY id
idrevenuenext_month_revenue
1532492
2492393
3393723
4723 
challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • air_conditioners: id, efficiency, strength, month

Vergleiche die Effizienz jeder Klimaanlage mit der vorherigen.

Schreibe eine Abfrage, die die Effizienz jeder Klimaanlage zusammen mit der Effizienz der zuvor installierten Klimaanlage (basierend auf der id) anzeigt. Berechne außerdem den Effizienzunterschied zwischen der aktuellen und der vorherigen Klimaanlage. Sortiere das Ergebnis aufsteigend nach id und efficiency.

Erwartete Ausgabespalten:

  • id
  • efficiency
  • previous_efficiency (mit LAG)
  • efficiency_difference (aktuelle Effizienz - vorherige Effizienz)

Umschließe die Abfrage schließlich und filtere die erste Zeile heraus, deren previous_efficiency (und daher auch efficiency_difference) leer ist, also NULL:

SELECT * FROM (
    -- Deine Abfrage hier
)
WHERE previous_efficiency IS NOT NULL

Probier es selbst

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: SQL-Playground