ROW_NUMBER-Funktion
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 57 von 72.
Fensterfunktionen führen Berechnungen über eine Gruppe von Tabellenzeilen durch, die mit der aktuellen Zeile verknüpft sind. Im Gegensatz zu regulären Aggregatfunktionen fassen Fensterfunktionen die Ergebnisse nicht in einer einzigen Zeile zusammen.
Sie sind besonders nützlich, wenn du Folgendes tun musst:
- Laufende Summen berechnen
- Elemente innerhalb von Gruppen ordnen
- Aktuelle Zeilen mit vorherigen/nachfolgenden Zeilen vergleichen
- Trends über Zeiträume hinweg analysieren
Zum Beispiel sind hier einige Beispiele aus der Praxis für Anwendungsfälle von Fensterfunktionen:
- Umsatzanalyse
- Kumulative Umsätze bis zu jedem Jahr (1995, 1997, 1999) berechnen
- Die meistverkauften Produkte für jedes Quartal ermitteln
- Sportstatistiken
- Verfolge die Anzahl der olympischen Medaillen über verschiedene Jahre hinweg
- Identifiziere führende Athleten in jedem Wettbewerbszeitraum (2000, 2004, 2008)
ROW_NUMBER() ist eine der einfachsten Fensterfunktionen. Sie weist jeder Zeile in der Ergebnismenge eine eindeutige fortlaufende Nummer zu. So wird sie verwendet:
SELECT column1, column2,
ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;Die Verwendung der OVER-Klausel mit ROW_NUMBER() ist obligatorisch: ROW_NUMBER() OVER ()
Zum Beispiel:
SELECT product_name, sale_date,
ROW_NUMBER() OVER () as row_num
FROM sales;Dies fügt eine row_num-Spalte hinzu, die von 1 bis zur Gesamtzahl der Zeilen zählt.
Hinweis: Die OVER-Klausel kann Anweisungen zur Sortierung und Partitionierung enthalten, um zu steuern, wie die Nummerierung funktioniert.
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
liquids:id,density
Rufe alle Flüssigkeiten mit einer Dichte von mehr als 5.677 ab.
Nummeriere das Ergebnis (verwende die Funktion ROW_NUMBER()) und nenne diese Spalte row_num.
Probier es selbst
-- Nummeriere jede Zeile des gefilterten Ergebnisses mithilfe einer Fensterfunktion
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Weitere Schlüsselwörter
Das IN-SchlüsselwortDas BETWEEN-SchlüsselwortDas LIKE-SchlüsselwortDas AS-SchlüsselwortRückblick – Handymodelle7Datumsangaben
Datumsangaben behandeln – Teil 1Datumsangaben behandeln – Teil 2Datumsangaben behandeln – Teil 32Bedingungen
Grundlagen der BedingungenDas Schlüsselwort ANDDas Schlüsselwort ORDas Schlüsselwort NOTMehrere kombinierte BedingungenKlammernBoolesche Werte5Arithmetische Operationen
Mathematische OperatorenMathematische SpaltenDie Modulo-OperationDie ROUND()-Funktion8Statistik
Integrierte Aggregatfunktionen Teil 1Integrierte Aggregatfunktionen Teil 2Gruppierung Teil 1Gruppierung Teil 2Unterabfragen Teil 1Unterabfragen Teil 2Rückblick – Total Gain ShopRückblick – Scooter ShopRückblick – Coffee Shop11Fensterfunktionen Teil 1
ROW_NUMBER-FunktionORDER-BY-KriteriumPARTITION-BY-KriteriumPARTITION & ORDERLEAD-&-LAG-FunktionenRückblick – LEAD & LAGRückblick – BilderRückblick – Boxen3Spezifisches Rückgabeformat
NULL-WerteErgebnisse sortieren Teil 1Ergebnisse sortieren Teil 2Zusammenfassung - Cyber Security FirmAnzahl der Datensätze begrenzenZusammenfassung - Vehicle Factory6Einführungsaufgaben
Wiederholung – ParlamentswahlWiederholung – Festnahme eines Straftäters durch die PolizeiWiederholung – Getränkebehälter an der BarWiederholung – Neue Spalten erstellenÜbe selbstständig: SQL-Playground