SQL Kümülatif Toplam

Sql Kumulatif Toplam



SQL'de kümülatif toplam, bir veritabanı tablosundaki sayısal bir sütunun toplamını hesaplamamıza olanak tanıyan bir yöntemi ifade eder. İlerlemenin izlenmesi veya belirli bir değerin hareketli ortalamalarının hesaplanması gibi çok çeşitli senaryolarda kümülatif bir toplam devreye girer.

Bu derste, çeşitli yöntem ve teknikleri kullanarak SQL'de kümülatif toplamın nasıl uygulanacağını ve kullanılacağını öğreneceğiz.







Örnek veri

Kümülatif toplamı nasıl uygulayıp kullanabileceğimizi daha iyi anlamak için örnek verilerle temel bir tablo oluşturarak başlayalım. Bu, bu yazıda tüm yöntemlerin işleyişini hızlı ve verimli bir şekilde göstermemize olanak tanır.



Ürün bilgilerini saklayan temel bir tablo oluşturarak başlayın.



CREATE TABLE ürünleri (
ürün_id INT BİRİNCİL ANAHTAR,
ürün_adı VARCHAR ( 255 ) ,
fiyat DECIMAL ( 10 , 2 )
) ;





Bu, ürün kimliğini, ürün adını ve her ürünün fiyatını saklayan 'ürünler' adı verilen yeni bir tablo oluşturmalıdır.

Daha sonra aşağıdaki örnek insert ifadelerinde gösterildiği gibi örnek veri eklemeye devam edebiliriz:



ÜRÜNLERE EKLEYİN ( ürün_kimliği, ürün_adı, fiyat )
DEĞERLER
( 1 , 'Görsel Stüdyo Kodu' , 10.00 ) ,
( 2 , 'Yüce metin' , 80.00 ) ,
( 3 , 'PyCharm Profesyonel' , 199.00 ) ,
( 4 , 'Eclipse IDE' , 30.00 ) ,
( 5 , 'IntelliJ IDEA Ultimate' , 699,00 ) ,
( 6 , 'GitHub Masaüstü' , 20.00 ) ,
( 7 , 'Yazılımı Bekle' , 10.00 ) ,
( 8 , 'X kodu' , 660,00 ) ,
( 9 , 'NetBeans' , 0,00 ) ,
( 10 , 'Atom' , 60.00 ) ;

NOT: Verilen veriler tamamen hayal ürünüdür. Listelenen öğelerin herhangi birinin gerçek fiyatını temsil etmez.

Ortaya çıkan tablo aşağıdaki gibidir:

SQL Kümülatif Toplam (Kendi Kendine Katılma)

Belirli bir sütunda kümülatif toplam gerçekleştirmek için kullanabileceğimiz tekniklerden biri, kendi kendine birleştirme yöntemini kullanmaktır. Bu yöntemin bir avantajı, Windows işlevlerini desteklemeyenler bile neredeyse tüm SQL veritabanlarında çalışmasıdır.

Örneğin önceki “ürünler” tablosunu ele alalım. Fiyat sütununun kümülatif toplamını aşağıdaki sorguda gösterildiği gibi oluşturabiliriz:

SEÇME
p1.product_id,
p1.ürün_adı,
p1.fiyat,
TOPLA ( p2.fiyat ) AS kümülatif_sum
İTİBAREN
ürünler p1
KATILMAK
ürünler p2
AÇIK
p1.product_id > = p2.product_id
GRUPLANDIRMA ŞEKLİ
p1.product_id,
p1.ürün_adı,
p1.fiyat
TARAFINDAN SİPARİŞ
p1.product_id;

Sorgunun işleyişini fark ettiniz mi? Değilse, adım adım açıkladığımız gibi bizimle kalın.

Verilen örnek sorguda, kendi kendine birleştirme gerçekleştirmemizi sağlayan 'ürünler' tablosu için 'p1' ve 'p2' olmak üzere iki takma ad oluşturarak başlıyoruz.

Daha sonra 'p1'in 'product_id'sinin 'p2'nin 'product_id'sinden büyük veya ona eşit olması koşuluyla 'p1' ve 'p2'yi birleştirmeye devam ediyoruz.

Bir sonraki adımda, temel olarak her satır için fiyatların kümülatif toplamını hesaplayan sum() fonksiyonunu çağırıyoruz.

Son olarak sonuçları “product_id”, “product_name” ve “price” kullanarak gruplandırıyoruz ve sonuçları sıralıyoruz.

Bu işlemden sonra, her kayıt için aşağıdaki sonuç tablosunda gösterildiği gibi kümülatif bir toplam elde etmeliyiz:

Gördüğünüz gibi önceki tüm satırların toplamını alıyoruz. Son satır, önceki tüm satırların toplamını içermelidir.

SQL Kümülatif Toplamı (Pencere İşlevleri)

SQL'de kümülatif toplamı hesaplamanın daha verimli ve pratik bir yolu, desteklendiğinde pencere işlevlerinden yararlanmaktır.

SQL Server, PostgreSQL veya MySQL sürüm 8.0 ve üzeri gibi bir veritabanınız varsa bu, belirli bir sütunun kümülatif toplamını belirlemek için en kullanışlı ve önerilen yöntemdir.

Aşağıda gösterildiği gibi örneğe bir göz atın:

SEÇME
ürün kimliği,
Ürün adı,
fiyat,
TOPLA ( fiyat ) ÜZERİNDE ( ORDER BY ürün_kimliği ) AS kümülatif_sum
İTİBAREN
ürünler;

Bu durumda “products” tablosundan “product_id”, “product_name” ve “price” sütunlarını seçerek başlıyoruz.

Daha sonra OVER cümleciğini kullanarak SUM() fonksiyonunu bir pencere fonksiyonu olarak kullanırız.

OVER deyiminde, kümülatif toplamın hesaplanma sırasını tanımlayan ORDER BY deyimini belirtiriz.

Bu, aşağıda gösterildiği gibi benzer bir çıktı döndürmelidir:

Kendi kendine birleştirme kullanımına kıyasla pencere işlevlerini kullanmanın daha tutarlı, verimli ve okunabilir olduğunu fark edeceksiniz.

Çözüm

Bu derste SQL'deki kümülatif toplamlar hakkında her şeyi öğrendik. Ayrıca SQL'de kümülatif toplamı gerçekleştirmek için kendi kendine birleştirme ve pencere işlevlerinin nasıl kullanılacağını da ele aldık.