PARTITION BY criterion
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy — Lektion 59 von 72.
Eine weitere Option für die OVER ()-Klausel ist PARTITION BY
Es ermöglicht uns, die Zeilen für jede Gruppe separat zu nummerieren
Zum Beispiel:
| id | type |
| 132 | t1 |
| 52 | t2 |
| 92 | t1 |
| 154 | t3 |
| 198 | t1 |
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1Dies erzeugt eine Spalte, die jeden Typ innerhalb seiner Gruppe nummeriert:
| id | type | row_num |
| 132 | t1 | 1 |
| 52 | t2 | 1 |
| 92 | t1 | 2 |
| 154 | t3 | 1 |
| 198 | t1 | 3 |
id 92 hat row_num 2, weil es die zweite Zeile von type t1 ist, wenn nach id sortiert wird.
Hinweis: ROW_NUMBER() erfordert eine ORDER BY-Klausel innerhalb der OVER(), um zu bestimmen, wie Zeilen innerhalb jeder Partition nummeriert werden sollen.
Wir können sogar mehrere Spalten innerhalb des PARTITION BY angeben:
ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)Aufgabe
EinfachVerfügbare Tabellen und Spalten:
<strong>doors</strong>:<strong>id</strong>,<strong>publication_year</strong><strong>doors_specs</strong>:<strong>id</strong>,<strong>country</strong>,<strong>color</strong>
Eine Fabrik baut Türen. Sie muss die Türen für jede country und color Kombination nummerieren, die ein publication_year kleiner als 2000 haben. Nennen Sie diese Spalte row_num.
Die Türen sollen innerhalb jeder Gruppe in aufsteigender Reihenfolge nach ihrer id nummeriert werden. Türen ohne Spezifikationen sollten ignoriert werden. Sortieren Sie das endgültige Ergebnis in aufsteigender Reihenfolge nach der id.
Spickzettel
Verwenden Sie PARTITION BY in der OVER() Klausel, um Zeilen innerhalb von Gruppen zu nummerieren:
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type) as row_num
FROM table1Sie können nach mehreren Spalten partitionieren:
ROW_NUMBER() OVER (PARTITION BY type, hue)Probier es selbst
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