Kümülatif Toplam
Coddy'nin SQL Journey'sinin Temellerin Ötesi bölümünün bir parçası — ders 25 / 27.
Yürüyen (kümülatif) toplam, ORDER BY içeren bir pencere üzerindeki SUM işlemidir: bu, toplamayı satır satır büyüyen bir hale dönüştürür.
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueORDER BY olmadan pencere her satırı kapsar ve her satırda genel toplamı elde edersiniz. Onunla birlikte, pencere bu sırada her seferinde bir satır genişler, böylece her satır yalnızca kendisini ve kendisinden önceki her şeyi görür.
Grup başına yürüyen toplamı sıfırlamak için bir PARTITION BY ekleyin; örneğin, bölge bazında günbegün gelirin yürüyen toplamı.
Görev
KolayMevcut tablolar ve sütunlar:
<strong>revenue</strong>:<strong>region</strong>,<strong>day</strong>,<strong>amount</strong>
region, day, amount ve region_running_total değerlerini döndürün: o bölge için bu gün dahil olmak üzere kümülatif amount. Hareketli toplam her bölge için sıfırlanmalıdır.
Pencere üzerinde PARTITION BY kullanın. region, ardından day sütununa göre sıralayın.
Kopya kağıdı
Yürüyen (kümülatif) toplam, pencere içinde ORDER BY ile birlikte SUM kullanır — pencere bu sırada satır satır genişler:
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueYürüyen toplamı grup başına sıfırlamak için PARTITION BY ekleyin:
SELECT region, day, amount,
SUM(amount) OVER (PARTITION BY region ORDER BY day) AS region_running_total
FROM revenue
ORDER BY region, dayKendin dene
SELECT region, day, amount,
-- SUM(amount) OVER (PARTITION BY region ORDER BY day)
FROM revenue
ORDER BY region, day
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temellerin Ötesi bölümündeki tüm dersler
2String Fonksiyonları
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE ve TRIM|| ile BirleştirmeÖzet - Faturalar6Analitik Tarifleri
Grup Başına İlk NToplamın YüzdesiKümülatif ToplamAnahtar Başına Tek Satır TutmaÖzet - En İyi Müşteriler