Menu
Coddy logo textTech

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

Sie ermöglicht es uns, die Zeilen für jede Gruppe separat zu 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

Dies wird eine Spalte erzeugen, die jeden Typ innerhalb seiner selbst nummeriert:

idtyperow_num
132t11
52t21
92t11
154t31
198t13

id 92 hat row_num 1, da es die kleinste id im type t1 ist.

Hinweis: ROW_NUMBER() erfordert eine ORDER BY-Klausel innerhalb von OVER(), um zu bestimmen, wie 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:

  • <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 Kombination aus country und color nummerieren, die ein publication_year kleiner als 2000 haben. Benennen Sie diese Spalte row_num.

Die Türen sollten innerhalb jeder Gruppe in aufsteigender Reihenfolge nach ihrer id nummeriert werden. Türen ohne Spezifikationen sollten ignoriert werden. Sortieren Sie 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