0Pricing
SQL Academy · Lektion

OVER, PARTITION BY, ORDER BY

Verstehen Sie das Modell von Window Functions: OVER, PARTITION BY (Gruppierung), ORDER BY (Sortierung) und den Unterschied zu GROUP BY.

OVER, PARTITION BY, ORDER BY ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist eine Fensterfunktion?

Eine Fensterfunktion berechnet einen Wert über eine Gruppe von Zeilen, die zur aktuellen Zeile gehören — ohne das Ergebnis wie GROUP BY zu verdichten. Sie behalten jede Zeile und erhalten zusätzlich eine Aggregatspalte.

Grundlegendes Beispiel

Der durchschnittliche Bestellwert über die gesamte Tabelle in jeder Zeile:

SELECT id, total,
       AVG(total) OVER () AS avg_total
FROM orders;

OVER-Klausel

Die OVER (...)-Klausel definiert das Fenster. Leere Klammern bedeuten „die gesamte Ergebnismenge“.

SELECT id, total,
       SUM(total) OVER () AS grand_total
FROM orders;

PARTITION BY: Fenster gruppieren

Wie GROUP BY, aber die Zeilen werden nicht verdichtet:

SELECT id, user_id, total,
       SUM(total) OVER (PARTITION BY user_id) AS user_total
FROM orders;

-- Every order keeps its row; user_total is the same for all of one user's orders.

ORDER BY im Fenster

ORDER BY innerhalb von OVER legt die Zeilenreihenfolge für laufende Berechnungen fest:

SELECT id, user_id, total,
       SUM(total) OVER (PARTITION BY user_id ORDER BY created_at) AS running_total
FROM orders;

-- Running total per user, ordered by date.

Fenster vs. GROUP BY

Direktvergleich:

-- GROUP BY: 1 row per user
SELECT user_id, SUM(total) FROM orders GROUP BY user_id;

-- Window: 1 row per order, with user total alongside
SELECT id, user_id, total,
       SUM(total) OVER (PARTITION BY user_id)
FROM orders;

Jede Zeile, ein anderer Frame

Der „Frame“ ist die Menge der Zeilen innerhalb der Partition, die die Funktion betrachtet. Der Standard-Frame mit ORDER BY reicht „vom Anfang bis zur aktuellen Zeile“ — dadurch entstehen laufende Summen.

Benannte Fenster

Wenn mehrere Funktionen dasselbe Fenster verwenden, benennen Sie es einmal:

SELECT id, user_id, total,
       SUM(total) OVER w AS running_sum,
       AVG(total) OVER w AS running_avg
FROM orders
WINDOW w AS (PARTITION BY user_id ORDER BY created_at);

Die meisten Aggregatfunktionen funktionieren als Fensterfunktionen

COUNT, SUM, AVG, MIN, MAX — sie alle können über einem Fenster verwendet werden. Spezialisierte Fensterfunktionen ergänzen ROW_NUMBER, RANK, LAG/LEAD, NTILE usw.

Fensterfunktionen werden nach WHERE ausgeführt

Logische Reihenfolge: FROM → WHERE → GROUP BY → HAVING → window functions → SELECT → ORDER BY → LIMIT. Daher filtert WHERE, bevor Fensterfunktionen berechnet werden.

Überlegungen zur Leistung

Fensterfunktionen erfordern eine Sortierung (oder einen Hash). Bei großen Partitionen vermeidet ein Index auf den Spalten (Partition, Reihenfolge) den Sortierschritt.

Zusammenfassung

Fensterfunktionen fügen jeder Zeile Aggregatwerte hinzu.

  • OVER () = gesamtes Ergebnis
  • PARTITION BY = Fenster gruppieren
  • ORDER BY im Fenster = laufende Berechnungen ermöglichen

Kurze Überprüfung

Was berechnet SUM(x) OVER (PARTITION BY user_id)?

Häufig gestellte Fragen

Ist die Lektion „OVER, PARTITION BY, ORDER BY“ kostenlos?

Ja — der vollständige Text von „OVER, PARTITION BY, ORDER BY“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „OVER, PARTITION BY, ORDER BY“?

Verstehen Sie das Modell von Window Functions: OVER, PARTITION BY (Gruppierung), ORDER BY (Sortierung) und den Unterschied zu GROUP BY. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um SQL Academy zu starten?

Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „OVER, PARTITION BY, ORDER BY“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?

Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. OVER, PARTITION BY, ORDER BY
  2. ROW_NUMBER, RANK, DENSE_RANK
  3. LAG, LEAD und Zeitreihenmuster
  4. Laufende Summen und gleitende Durchschnitte
← Zurück zu SQL Academy