0Pricing
SQL Academy · Ders

Çerçeve Maddeleri: ROWS ve RANGE

ROWS BETWEEN ile RANGE BETWEEN çerçeve maddeleri arasında seçim yapın ve her birinin yinelenenleri ve boşlukları nasıl ele aldığını anlayın.

Çerçeve Maddeleri: ROWS ve RANGE, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

OVER İçindeki Çerçeve

Bir pencere işlevi bir çerçeve üzerinde değerlendirme yapar — bölümdeki satırların bir alt kümesi. Çerçeve şu şekilde tanımlanır:

OVER (
  PARTITION BY ...
  ORDER BY ...
  ROWS BETWEEN <start> AND <end>     -- or RANGE BETWEEN ...
)

Varsayılan Çerçeve

ORDER BY belirtir ancak çerçeve belirtmezseniz varsayılan değer şöyledir:

RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
-- "From the first row up to all rows tied with the current row".

ROWS Fiziksel Olarak Sayar

ROWS, değerden bağımsız olarak bölüm sırasındaki N satırı sayar:

SUM(x) OVER (ORDER BY day ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
-- The current row plus the previous 2.  Exactly 3 rows.

RANGE Değere Göre Sayar

RANGE, ORDER BY değerleri geçerli değerin bir aralığı içinde kalan satırları sayar:

SUM(x) OVER (
  ORDER BY day
  RANGE BETWEEN INTERVAL '2 days' PRECEDING AND CURRENT ROW
)
-- All rows within 2 days (by calendar) of the current row.

Bu Ayrım Neden Önemlidir?

Verilerde boşluklar varsa ROWS ve RANGE farklı sonuçlar verir:

-- Days: 1, 3, 5 (no 2 or 4)
-- ROWS BETWEEN 2 PRECEDING AND CURRENT ROW for day 5: rows 1,3,5 = 3 days
-- RANGE BETWEEN INTERVAL '2 days' PRECEDING for day 5: only days 3,5 = 2 days

GROUPS Çerçevesi (PG 11+)

GROUPS, tek tek satırlar yerine eş değerli grupları (ORDER BY üzerindeki eşitlikleri) sayar:

SUM(x) OVER (
  ORDER BY tier
  GROUPS BETWEEN 1 PRECEDING AND CURRENT ROW
)
-- "The current tier and the previous tier" — useful when ORDER BY has many ties.

Çerçeve Sınırları

  • UNBOUNDED PRECEDING — bölümün ilk satırı
  • n PRECEDING
  • CURRENT ROW
  • n FOLLOWING
  • UNBOUNDED FOLLOWING — son satır

Birikimli Toplam

Başlangıçtan bu noktaya kadar olan toplam:

SUM(x) OVER (ORDER BY day ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
-- Same as the default frame.

Gerileyen Pencere

N günlük gerileyen ortalama:

AVG(revenue) OVER (
  ORDER BY day
  ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) AS avg_7d

Merkezlenmiş Pencere

Her iki yöne de bakın:

AVG(revenue) OVER (
  ORDER BY day
  ROWS BETWEEN 3 PRECEDING AND 3 FOLLOWING
) AS centred_7d

LAST_VALUE Sürprizi

Varsayılan çerçeveyle LAST_VALUE, bölümdeki son satır yerine geçerli satırı döndürür. Açıkça sınırsız bir çerçeve kullanın:

LAST_VALUE(name) OVER (
  PARTITION BY group ORDER BY day
  ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
)

EXCLUDE Yan Tümcesi (PG 11+)

Çerçevedeki belirli satırları atlayın:

SUM(x) OVER (
  ORDER BY day
  ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
  EXCLUDE CURRENT ROW
)
-- All previous 6 days but not today.

Özet

Çerçeve yan tümceleri pencereler üzerinde hassas denetim sağlar.

  • ROWS — fiziksel satır sayısı
  • RANGE — değere dayalı aralık
  • GROUPS — eş değerli gruplar
  • Varsayılan çerçeve şaşırtıcı olabilir — açıkça belirtin

Hızlı Kontrol

Eksik günlerin bulunduğu günlük gelir verileriniz var. "Şimdiden önceki 7 takvim günü içindeki tüm satırlar" sonucunu hangi çerçeve verir?

Sıkça Sorulan Sorular

“Çerçeve Maddeleri: ROWS ve RANGE” dersi ücretsiz mi?

Evet — “Çerçeve Maddeleri: ROWS ve RANGE” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“Çerçeve Maddeleri: ROWS ve RANGE” dersinde ne öğreneceğim?

ROWS BETWEEN ile RANGE BETWEEN çerçeve maddeleri arasında seçim yapın ve her birinin yinelenenleri ve boşlukları nasıl ele aldığını anlayın. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Çerçeve Maddeleri: ROWS ve RANGE” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Çerçeve Maddeleri: ROWS ve RANGE
  2. Çerçeve Pencereleriyle LAG/LEAD
  3. NTILE ve Cume_Dist ile Kovalara Ayırma
  4. Gerçek Dünya Raporlama Kalıpları
← SQL Academy Sayfasına Dön