İç içe geçmeli toplamalar
Bir grafik ifadesindeki herhangi bir alan adının tam olarak bir toplama işlevi ile kapatılması gerekir. Toplamaları iç içe geçirmeniz gerekiyorsa ikinci bir toplama düzeyi eklemek için Aggr() işlevini kullanabilirsiniz. Aggr(), bağımsız değişken olarak bir toplama işlevi içerir.
Her zaman bir işlevde bir toplama düzeyi
Normal bir uygulamada şunlar bulunabilir:
- veride bir milyon kayıt
- pivot tabloda yüz satır
- gösterge veya metin kutusunda tek bir KPI
Farklı büyüklüklerde olsa da üç sayı da tüm verileri temsil edebilir. Sayılar yalnızca farklı toplama düzeyleridir.
Toplama işlevleri, giriş olarak birçok kayıttaki değerleri kullanır ve bunları, tüm kayıtların özeti olarak görülebilecek tek bir değer halinde daraltır. Tek bir sınırlama vardır: Başka bir toplama işlevinin içinde toplama işlevi kullanamazsınız. Genellikle tüm alan başvurularının yalnızca bir toplama işlevinde birleştirilmesi gerekir.
Aşağıdaki ifadeler işe yarar:
- Sum(Sales)
- Sum(Sales)/Count(Order Number)
Aşağıdaki ifade, iç içe geçmeli bir toplama olduğundan çalışmaz:
- Count(Sum(Sales))
Bunun çözümü, Aggr() işlevi biçiminde sağlanır. Adının aksine bu bir toplama işlevi değildir. Bu matematikteki matris gibi "çoktan çoğa" bir işlevdir. N kayıt içeren bir tabloyu M kayıt içeren tabloya dönüştürür. Bir dizi değer döndürür. Bu, tek bir hesaplama ve bir veya birkaç boyut içeren bir sanal düz tablo olarak da görülebilir.
İç içe geçmeli toplamalar için Aggr() işlevini kullanma
Aggr(), belirtilen boyut veya boyutlar üzerinde hesaplanan ifade için bir değer dizisi döndürür. Örneğin, her bölge için müşteri başına maksimum satış değeri. Gelişmiş toplamalarda, Aggr() fonksiyonu diğer bir toplama işlevinin içinde yer alır ve Aggr() fonksiyonundan elde edilen sonuç dizisi, iç içe geçtiği toplama için girdi olarak kullanılır.
Bu kullanıldığında Aggr() deyimi, bir veya daha fazla boyuta göre gruplanmış tek bir ifade içeren sanal tablo oluşturur. Bu sanal tablonun sonucuna daha sonra bir dış toplama işlevi tarafından ek toplama uygulanabilir.
En büyük ortalama sipariş değerini hesaplama
Grafik ifadesinde basit bir Aggr() deyimi kullanalım.
Bölgesel düzeyde genel metriklerimizi görüntülemek, aynı zamanda daha karmaşık olan iki ifadeyi de göstermek istiyoruz:
- Her bir bölgede yöneticiye göre en büyük ortalama sipariş değeri.
- En büyük ortalama sipariş değerinden sorumlu olan yönetici.
Standart bir Sum(Sales)/Count([Order Number]) ifadesini kullanarak her bir bölge için ortalama sipariş değerini kolayca hesaplayabiliriz.
Uygulamanın içinde Nested Aggregations sayfasında, Aggr() function başlıklı bir tablo bulacaksınız.
Aşağıdakileri yapın:
- Mevcut Aggr() function tablosunu seçin.
Özellikler paneli açılır. - Sütun ekle'ye tıklayın ve Hesaplama'yı seçin.
-
simgesine tıklayın.
İfade düzenleyicisi açılır. - Şunları girin: Sum(Sales)/Count([Order Number])
- Uygula'ya tıklayın.
Hedefimiz, her bir bölge için en büyük ortalama sipariş değerini almaktır. Qlik Sense uygulamasına, yönetici başına her bir bölge için ortalama sipariş değerini almak istediğimizi bildirmek ve sonra bunların en büyüğünü görüntülemek için Aggr() işlevini kullanmamız gerekir. Yönetici başına her bir bölge için ortalama sipariş değerini almak üzere, Aggr() deyimimize şu boyutları dahil etmemiz gerekir:
Aggr(Sum(Sales)/Count([Order Number]), Region, Manager)
Bu ifade Qlik Sense uygulamasının şöyle görünen bir sanal tablo oluşturmasına neden olur:
Qlik Sense, yönetici başına her bir bölge için tek tek ortalama sipariş değerlerini hesapladığında, bu değerlerden en büyük olanını bulmamız gerekir. Aggr() işlevini Max() ile kaydırarak bunu yaparız:
Max(Aggr(Sum(Sales)/Count([Order Number]), Manager, Region))
Aşağıdakileri yapın:
- Sütun ekle'ye tıklayın ve Hesaplama'yı seçin.
-
simgesine tıklayın.
İfade düzenleyicisi açılır. - Şunları girin: Max(Aggr(Sum(Sales)/ Count([Order Number]), Manager, Region))
- Uygula'ya tıklayın.
Bölge düzeyinde tüm yöneticiler için en büyük ortalama sipariş değerini görebilirsiniz. Bu, iki karmaşık ifademizden birincisidir. Sonraki gereksinim, bu büyük ortalama sipariş değerlerinden sorumlu olan yöneticinin adının, değerlerin yanında görüntülenmesini sağlamaktır.
Bunu yapmak için, önceki gibi Aggr() fonksiyonunu kullanırız ancak bu kez FirstSortedValue() fonksiyonu birlikte kullanıyoruz. FirstSortedValue() işlevi, Qlik Sense uygulamasına, işlevin ikinci kısmında belirtilen belirli boyut için bize yöneticiyi sağlamasını ister:
FirstSortedValue(Manager,-Aggr(Sum(Sales)/Count(Order Number), Manager, Region))
Aşağıdakileri yapın:
- Sütun ekle'ye tıklayın ve Hesaplama'yı seçin.
- simgesine tıklayın.
İfade düzenleyicisi açılır. - Şunları girin: FirstSortedValue(Manager,-Aggr(Sum(Sales)/ Count([Order Number]), Manager, Region))
- Uygula'ya tıklayın.
Daha fazla bilgi için bk. Aggr
Daha fazla bilgi için bk. FirstSortedValue