Ana içeriğe geç
Kesit SQL
Orta · Pencere Fonksiyonları

NTILE, PERCENT_RANK, FIRST_VALUE

Dilimlere ayırmak, yüzdelik sıra ve penceredeki ilk/son değer.

Uygulamada aç, 7 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

NTILE: eşit dilimler

NTILE(4) sıralı satırları 4 eşit gruba (çeyrek) böler. Müşteri segmentasyonunda çok kullanılır.

SELECT name, price,
       NTILE(4) OVER (ORDER BY price) AS fiyat_ceyregi
FROM products;

PERCENT_RANK ve CUME_DIST

SELECT first_name, salary,
       ROUND(PERCENT_RANK() OVER (ORDER BY salary), 2) AS yuzdelik
FROM employees
ORDER BY salary;

FIRST_VALUE, LAST_VALUE, NTH_VALUE

SELECT category, name, price,
       FIRST_VALUE(name) OVER (PARTITION BY category ORDER BY price DESC) AS en_pahali
FROM products;
LAST_VALUE tuzağıVarsayılan çerçeve “baştan bu satıra” olduğu için LAST_VALUE genelde satırın kendisini döndürür. Doğrusu: LAST_VALUE(x) OVER (... ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING).

Derinleş: dilimler ve eşitlik

NTILE eşit büyüklükte gruplar üretir; aynı değere sahip iki satır farklı dilimlere düşebilir. “Üst %25 müşteri” derken bu kabul edilebilir mi, yoksa değer eşiği mi (PERCENT_RANK >= 0.75) istiyorsun? İkisi farklı sayıda müşteri döndürür. Belirleyici sonuç için ORDER BY'a benzersiz bir anahtar ekle: NTILE(4) OVER (ORDER BY siparis, customer_id).

Alıştırmalara geç (7)