ROW_NUMBER function
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 57 von 72.
Fensterfunktionen (Window Functions) führen Berechnungen über eine Gruppe von Tabellenzeilen aus, die mit der aktuellen Zeile in Beziehung stehen. Im Gegensatz zu regulären Aggregatfunktionen fassen Fensterfunktionen die Ergebnisse nicht in einer einzigen Zeile zusammen.
Sie sind besonders nützlich, wenn Sie Folgendes tun müssen:
- Laufende Summen berechnen
- Elemente innerhalb von Gruppen rangieren
- Aktuelle Zeilen mit vorherigen/nachfolgenden Zeilen vergleichen
- Trends über Zeiträume hinweg analysieren
Hier sind zum Beispiel einige reale Anwendungsfälle für Fensterfunktionen:
- Umsatzanalyse
- Berechnen Sie die kumulierten Umsätze für jedes Jahr (1995, 1997, 1999)
- Finden Sie die meistverkauften Produkte für jedes Quartal
- Sportstatistiken
- Verfolgen Sie Olympische Medaillenspiegel über verschiedene Jahre hinweg
- Identifizieren Sie führende Athleten in jedem Wettkampfzeitraum (2000, 2004, 2008)
ROW_NUMBER() ist eine der einfachsten Window-Funktionen. 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;Es ist zwingend erforderlich, die OVER-Klausel mit ROW_NUMBER() zu verwenden: 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:
<strong>liquids</strong>:<strong>id</strong>,<strong>density</strong>
Hole alle Flüssigkeiten mit einer Dichte von mehr als 5.677.
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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function8Statistics
Built-In Aggregate Part 1Built-In Aggregate Part 2Grouping Part 1Grouping Part 2Subqueries Part 1Subqueries Part 2Recap - Total Gain ShopRecap - Scooter ShopRecap - Coffee Shop11Window Functions part 1
ROW_NUMBER functionORDER BY criterionPARTITION BY criterionPARTITION & ORDERLEAD & LAG FunctionsRecap - LEAD & LAGRecap - PicturesRecap - Boxes3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columnsÜbe selbstständig: SQL-Playground