Menu
Coddy logo textTech

Aggregation Functions

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

Agregasyon fonksiyonları, mevcut satıra kadar AVG() veya MAX() veya herhangi bir diğer agregasyon fonksiyonunu hesaplamak için kullanılır.
Örneğin, her bitiş dönemine kadar elde ettiğimiz maksimum geliri hesaplayabiliriz:

aygelirbölge
440Doğu
520Doğu
660Batı
755Batı
861Doğu
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1

Bu şu şekilde dönecek:

aygelirmaks_gelir
44040
52040
66060
75560
86161

4. ve 5. aylar için maksimum gelir 40, 5. ve 6. aylar için gelir 60 ve 8. ay için 61'dir. Bu, yeni bir daha büyük gelir bulduğunda eskiyi bırakıp şimdiye kadarki en büyüğünü kullandığı için.

AVG() fonksiyonu için şöyle görünecektir:

SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1
aygelirortalama_gelir
44040
52030
66040
75543.75
86147.2

Ayrıca, PARTITION BY kullanarak hesaplamalarımızı belirli kategorilere göre gruplandırabiliriz. Örneğin:

SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1

Bize şu şekilde verir:

aygelirbölgemaksimum_gelir
440Doğu40
520Doğu40
660Batı60
755Batı60
861Doğu61

Şimdi maksimum her bölge için ayrı ayrı hesaplanıyor. Doğu bölgesi ve Batı bölgesi kendi çalışan maksimumlarını bağımsız olarak koruyor.

challenge icon

Görev

Kolay

Mevcut tablolar ve sütunlar:

  • <strong>books</strong>: <strong>book</strong>, <strong>page</strong>, <strong>words</strong>

Her kitap için, kitap adını, toplam sayfa sayısını, her sayfadaki kelime sayısını görüntüleyin ve hesaplayın:

  1. O kitapta herhangi bir sayfada bulunan maksimum kelime sayısı
  2. Tüm kitap için sayfa başına ortalama kelime sayısı
  3. Mevcut sayfanın kelimeleri ile kitabın sayfa başına ortalama kelimeleri arasındaki fark

Sonuçları kitap ve sayfa numarasına göre sıralanmış olarak görüntüleyin.

Aşağıdaki sütunları döndürün:

  • book
  • page
  • words
  • max_words_in_book
  • avg_words_per_page
  • diff_from_avg

Kopya kağıdı

Pencere fonksiyonları toplama ile, mevcut satıra ilişkin bir satır kümesi boyunca değerleri hesaplar. Çalışan hesaplamalar için OVER yan cümlesini ORDER BY ile kullanın:

SELECT column, 
       MAX(column) OVER (ORDER BY column ASC) as running_max,
       AVG(column) OVER (ORDER BY column ASC) as running_avg
FROM table

Hesaplamaları kategorilere göre gruplandırmak için PARTITION BY kullanın:

SELECT column, category,
       MAX(column) OVER (PARTITION BY category ORDER BY column ASC) as max_per_category
FROM table

Bu, her kategori için maksimumu ayrı ayrı hesaplar ve bağımsız çalışan hesaplamaları korur.

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