CodeBlanks Logo Icon CodeBlanks

PARTITION BY

Gruplar içinde window hesabı yapmayı öğrenirsin.

PARTITION BY

PARTITION BY pencereyi gruplara böler. Her grup içinde ayrı hesaplama yapılır.

SELECT name, category, price,
  RANK() OVER (PARTITION BY category ORDER BY price DESC) AS rk
FROM products;

Örnekte: her kategori içinde ayrı sıralama.

products kaynağından name, category, price, RANK() OVER (PARTITION BY category … seçilir. RANK() bir pencere fonksiyonudur: satırları daraltmadan, OVER (…) içinde tanımlanan pencereye göre her satır için ayrı değer hesaplar.

PARTITION BY — ayrıntı

PARTITION BY GROUP BY gibi daraltmaz. Her satır kendi grubunun sonucunu alır.

Örneğin OVER (PARTITION BY category ORDER BY price DESC) her kategoride en pahalı ürüne 1 numarasını verir; numaralandırma her kategoride baştan başlar.

Uygulama PARTITION BY

Her kategori içinde RANK() OVER (PARTITION BY category ORDER BY price DESC) ile sırala.

Başlangıç kodu

query.sql
-- kategori içinde sırala
SELECT name, category, price,
  RANK() OVER (

Örnek çözüm

query.sql
SELECT name, category, price,
  RANK() OVER (PARTITION BY category ORDER BY price DESC) AS rk
FROM products;

Beklenen çıktı

name    category  rk
Laptop  Elektronik 1
Kalem   Kitap     1

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 PARTITION BY ekle

Soru
RANK() OVER (____ category ORDER BY price DESC)
Cevap
RANK() OVER (PARTITION BY category ORDER BY price DESC)

Açıklama: PARTITION BY doğru cevap.

2 PARTITION BY: kavramları eşleştir

Kavram Anlamı
PARTITION BY grupla
kategori bölüm
ayrı sıralama grup içi
daraltmaz korur

3 PARTITION BY ne yapar?

  • Gruplara böler Doğru cevap
  • Satır siler
  • Sıralar
  • Filtreler

Açıklama: PARTITION BY pencereyi gruplara böler.

İleri seviye bölümündeki tüm dersler