Menu
Coddy logo textTech

PARTITION BY criterion

Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası — ders 59 / 72.

OVER () yan tümcesi için başka bir seçenek PARTITION BY'dir

Bu, her grup için satırları ayrı ayrı numaralandırmamızı sağlar 

Örneğin:

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

Bu, her türün kendi içinde numaralandırıldığı bir sütun oluşturacaktır:

idtyperow_num
132t11
52t21
92t12
154t31
198t13

id 92'nin row_num'u 2'dir çünkü type t1'in id'ye göre sıralandığında ikinci satırıdır.

Not: ROW_NUMBER() bir ORDER BY yan tümcesi OVER() içinde gerektirir; bu, her bölüm içindeki satırların nasıl numaralandırılacağını belirlemek için.

PARTITION BY içinde birden fazla sütun bile belirtebiliriz:

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

Görev

Kolay

Mevcut tablolar ve sütunlar:

  • <strong>doors</strong>: <strong>id</strong>, <strong>publication_year</strong>
  • <strong>doors_specs</strong>: <strong>id</strong>, <strong>country</strong>, <strong>color</strong>

Bir fabrika kapı üretiyor. country ve color kombinasyonları için publication_year2000'den küçük olan kapıları numaralandırması gerekiyor. Bu sütuna row_num adını verin.

Kapılar her grup içinde id'lerine göre artan sırada numaralandırılmalıdır. Özellikleri olmayan kapılar yok sayılmalıdır. Sonucu id'ye göre artan sırada sıralayın. 

Kopya kağıdı

Gruplar içindeki satırları numaralandırmak için PARTITION BY'i OVER() yan ifadesinde kullanın:

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

Birden fazla sütuna göre partition yapabilirsiniz:

ROW_NUMBER() OVER (PARTITION BY type, hue)

Kendin dene

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler