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:
| ay | gelir | bölge |
| 4 | 40 | Doğu |
| 5 | 20 | Doğu |
| 6 | 60 | Batı |
| 7 | 55 | Batı |
| 8 | 61 | Doğu |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1Bu şu şekilde dönecek:
| ay | gelir | maks_gelir |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
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| ay | gelir | ortalama_gelir |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.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 table1Bize şu şekilde verir:
| ay | gelir | bölge | maksimum_gelir |
| 4 | 40 | Doğu | 40 |
| 5 | 20 | Doğu | 40 |
| 6 | 60 | Batı | 60 |
| 7 | 55 | Batı | 60 |
| 8 | 61 | Doğu | 61 |
Ş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.
Görev
KolayMevcut 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:
- O kitapta herhangi bir sayfada bulunan maksimum kelime sayısı
- Tüm kitap için sayfa başına ortalama kelime sayısı
- 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:
bookpagewordsmax_words_in_bookavg_words_per_pagediff_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 tableHesaplamaları 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 tableBu, her kategori için maksimumu ayrı ayrı hesaplar ve bağımsız çalışan hesaplamaları korur.
Kendin dene
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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns9Multiple tables
Basic Join Part 1Basic Join Part 2Recap - JoinSelf joinRecap - Self JoinUnionSimplify queries, WITH keywordRecap - With QueriesRecap - Real Estate Contractor12Window Functions part 2
RANK & DENSE_RANK FunctionsRecap - RANK & DENSE_RANKNTILE FunctionAggregation FunctionsROWS & RANGE Criterion