Menu
CoddyTech

PARTITION BY ölçütü

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 ifadesidir

Satırları her grup için 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 satırlarını id sırasına göre ayrı ayrı numaralandıran bir sütun oluşturur (aşağıdaki sonuç türe göre gruplanmış olarak gösterilmiştir):

idtyperow_num
92t11
132t12
198t13
52t21
154t31

id 92, type t1 içindeki en küçük id olduğu için row_num değeri 1'dir.

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

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

Kullanılabilir tablolar ve sütunlar:

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

Bir fabrika kapılar üretiyor. publication_year değeri 2000 değerinden küçük olan kapıları her country ve color kombinasyonu için numaralandırması gerekiyor. Bu sütuna row_num adını verin.

Kapılar, her grup içinde id değerlerine göre artan sırada numaralandırılmalıdır. Özellikleri olmayan kaparlar göz ardı edilmelidir. Nihai sonucu id değerine göre artan sırada sıralayın. 

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

Kendi başına pratik yap: SQL playground