Member-only story
SQL ile Raporlama: Multi-level Aggregation
SQL sorguları yazarken, zaman zaman birden çok işlem sonucunda tek bir raporlanacak sonuç elde etmek isteriz. Bunu yaparken daha önceki yazılarda da bahsettiğimiz gibi AVG(),SUM(),MAX(),MIN() gibi AGGREGATE fonksiyonlarını kullanmak en çok başvurulan yöntemler arasındadır. Peki bu fonksiyonları kendi içlerinde kullanmak istersek nasıl bir yol izlememiz gerekecek? Örneğin, veri içinde yapılan toplam harcamaları bulup, bu harcamaların siparişlere göre gruplanması ile birlikte her bir siparişte ortalama bir harcama bulmak istersek nasıl bir yol izlemeliyiz? Bu durumda multi-level aggregation kullanmamız gerekecek. Kısaca, bir ölçüm üzerinden başka bir ölçüm analizi yapacağız.
Kullanılan veri tabanı ve tablolar hakkında bilgi sahibi olmak için önceki yazıya erişebilirsiniz.
https://mehmetali-kaya.medium.com/sql-ile-raporlama-1-b9578272456c
Belirli bir ID ye sahip sipariş için 3 farklı ürün alındığı farz edilirse, yapılan toplam harcama ve bu toplam harcamaların sipariş numaralarına göre ortalama fiyatlarını bulmak istediğimizi varsayalım. Toplamı bulmak için SUM(), ortalama bulmak için AVG() kullanılacağı düşünülürse, sorgu için de nasıl kullanacağımıza dair örnekler üzerinden bu durumu incelemeye çalışacağız.
Öncelikle Quantity(Adet) alanında tüm siparişlerde ortalama kaç adet ürün alındığını bulup, ortalama adetten yola çıkarak ürün adetlerin toplamını bulmaya çalışalım.