Member-only story

SQL ile Raporlama: Multi-level Aggregation

Mehmet Ali Kaya
7 min readMar 3, 2021

--

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.

--

--

Mehmet Ali Kaya
Mehmet Ali Kaya

Written by Mehmet Ali Kaya

Industrial Engineer/ Business Intelligence Consultant

No responses yet