Menu
Coddy logo textTech

PARTITION-BY-Kriterium

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

Eine weitere Option für die OVER ()-Klausel ist PARTITION BY.

Damit können wir die Zeilen für jede Gruppe separat nummerieren 

Zum Beispiel:

idtype
132t1
52t2
92t1
154t3
198t1
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1

Dadurch wird eine Spalte erzeugt, die jeden Typ innerhalb seiner eigenen Gruppe nummeriert:

idtyperow_num
132t11
52t21
92t11
154t31
198t13

id 92 hat row_num 1, weil es die kleinste id in type t1 ist.

Hinweis: ROW_NUMBER() erfordert eine ORDER BY-Klausel innerhalb von OVER(), um zu bestimmen, wie die Zeilen innerhalb jeder Partition nummeriert werden sollen.

Wir können sogar mehrere Spalten innerhalb von PARTITION BY angeben:

ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)
challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • doors: id, publication_year
  • doors_specs: id, country, color

Eine Fabrik baut Türen. Sie muss die Türen für jede Kombination aus country und color nummerieren, deren publication_year kleiner als 2000 ist. Nenne diese Spalte row_num.

Die Türen sollen innerhalb jeder Gruppe in aufsteigender Reihenfolge nach ihrer id nummeriert werden. Türen ohne Spezifikationen sollen ignoriert werden. Sortiere das Endergebnis in aufsteigender Reihenfolge nach der id

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