Menu
Coddy logo textTech

Kryterium PARTITION BY

Lekcja 5 z 13 w kursie SQL dla zaawansowanych w Coddy.

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

Pozwala nam numerować wiersze osobno dla każdej grupy 

Na przykład:

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

Utworzy to kolumnę, która ponumeruje wiersze w ramach każdego typu:

idtyperow_num
132t11
52t21
92t12
154t31
198t13

id 92 ma row_num 2, ponieważ jest drugim wierszem typu type t1

Możemy też połączyć PARTITION BY z ORDER BY:

SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1

To ponumeruje wiersze w kolejności rosnącej według identyfikatora w ramach każdego typu:

idtyperow_num
132t12
52t21
92t11
154t31
198t13

Teraz id 132 ma row_num 2, ponieważ jest większe niż 92 i mniejsze niż 198.

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

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

Wyzwanie

Łatwy

Fabryka produkuje drzwi. Musi ponumerować drzwi dla każdego country i color, których publication_year jest wcześniejszy niż 2000. Nazwij tę kolumnę row_num.

Drzwi bez specyfikacji należy pominąć. Posortuj wynik rosnąco według id. 

Spróbuj swoich sił

Wszystkie lekcje w sekcji SQL dla zaawansowanych

Poćwicz samodzielnie: Kompilator Python online