Menu
Coddy logo textTech

Kryterium PARTITION BY

Część sekcji Podstawy ścieżki SQL w Coddy. Lekcja 59 z 72.

Inną opcją dla klauzuli OVER () jest PARTITION BY

Pozwala nam osobno numerować wiersze w każdej grupie 

Na przykład:

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

Wygeneruje to kolumnę, która numeruje wiersze każdego typu osobno, w kolejności według id (wynik poniżej jest pogrupowany według typu):

idtyperow_num
92t11
132t12
198t13
52t21
154t31

id 92 ma row_num równe 1, ponieważ jest najmniejszym id w type t1.

Uwaga: ROW_NUMBER() wymaga klauzuli ORDER BY wewnątrz OVER(), aby określić sposób numerowania wierszy w każdej partycji.

Możemy nawet określić wiele kolumn w PARTITION BY:

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

Wyzwanie

Łatwy

Dostępne tabele i kolumny:

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

Fabryka produkuje drzwi. Musi ponumerować drzwi dla każdej kombinacji country i color, które mają publication_year mniejszy niż 2000. Nazwij tę kolumnę row_num.

Drzwi powinny być numerowane w każdej grupie rosnąco według ich id. Drzwi bez specyfikacji należy pominąć. Posortuj wynik końcowy rosnąco według id. 

Spróbuj swoich sił

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online SQL