Aggr - grafik fonksiyonu

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. Aggr fonksiyonu gelişmiş toplamalar için kullanılmakta olup, bu işlemlerde 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.

Sözdizim:  

Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr, StructuredParameter{, StructuredParameter})

Geri dönüş veri türü: dual

Bağımsız Değişkenler:  

Bağımsız Değişken Açıklama
expr

Toplama işlevinden oluşan bir ifade. Toplama işlevi, varsayılan olarak, seçim tarafından tanımlanmış olası kayıtlar kümesi üzerinden toplanır.

StructuredParameter

StructuredParameter bir boyuttan ve isteğe bağlı olarak şu biçimdeki bir sıralama ölçütünden oluşur: (Dimension(Sort-type, Ordering))

Boyut tek bir alandır ve ifade olamaz. Boyut, hangi değer dizisi için Aggr ifadesinin hesaplandığını belirlemek için kullanılır.

Sıralama ölçütleri dahil edilmişse boyut için hesaplanan Aggr fonksiyonu tarafından oluşturulan değer dizisi sıralanır. Sıralama düzeni Aggr fonksiyonunun içinde bulunduğu ifadenin sonucunu etkiliyorsa bu nokta önemlidir.

Sıralama ölçütlerinin nasıl kullanılacağıyla ilgili ayrıntılı bilgi için bkz. Yapılandırılmış parametredeki boyuta sıralama ölçütleri ekleme.

SetExpression Toplama işlevi, varsayılan olarak, seçim tarafından tanımlanmış olası kayıtlar kümesi üzerinden toplanır. Bir set analizi ifadesi ile alternatif bir kayıt kümesi tanımlanabilir.
DISTINCT İfade bağımsız değişkeninden önce distinct niteleyicisi geliyorsa veya hiçbir niteleyici kullanılmamışsa, boyut değerlerinin her bir tekil kombinasyonu yalnızca bir döndürülen değer üretir. Toplamalar normalde bu yolla yapılır; boyut değerlerinin her bir tekil kombinasyonu, grafikteki bir çizgiyi oluşturur.
NODISTINCT

İfade bağımsız değişkeninden önce nodistinct niteleyicisi geliyorsa, boyut değerlerinin her bir birleşimi, temel veri yapısına bağlı olarak, birden fazla döndürülen değer üretir. Yalnızca tek bir boyut varsa, aggrfonksiyonu kaynak verilerdeki satır sayısı ile aynı sayıda öğe içeren bir dizi döndürür.

Sum, Min ve Avg gibi temel toplama işlevleri tek bir sayısal değer döndürürken, Aggr() fonksiyonu, başka bir toplamanın gerçekleştirilebileceği geçici aşamalandırılmış bir sonuç kümesi (sanal tablo) oluşturulmasıyla karşılaştırılabilir. Örneğin, ortalama satış değerini hesaplamak için, bir Aggr() deyimi içinde müşterinin yaptığı satışların toplamının alınması ve sonra da toplamı alınan bu sonuçların ortalamasının hesaplanması: Avg(TOTAL Aggr(Sum(Sales), Customer)).

Tip: Birden fazla seviye halinde iç içe geçmiş grafik toplama oluşturmak isterseniz, hesaplanan boyutlarda Aggr() fonksiyonunu kullanın.

Sınırlamalar:  

Bir Aggr() fonksiyonundaki her boyut tek bir alan olmalıdır ve bir ifade (hesaplanan boyut) olamaz.

Yapılandırılmış parametredeki boyuta sıralama ölçütleri ekleme

Aggr fonksiyon söz dizimindeki StructuredParameter bağımsız değişkeni, temel biçimindeyken tek bir boyuttur. Aggr(Sum(Sales, Month)) ifadesi her ay için toplam satış değerini bulur. Ancak, başka bir toplama fonksiyonunun içinde bulunması durumunda, sıralama ölçütleri kullanılmazsa beklenmedik sonuçlar olabilir. Bunun nedeni, bazı boyutların sayısal veya alfabetik olarak sıralanması gibi sebeplerdir.

Aggr fonksiyonundaki StructuredParameter bağımsız değişkeninde, ifadenizdeki boyut üzerine sıralama ölçütleri belirtebilirsiniz. Bu sayede, Aggr fonksiyonu tarafından oluşturulan sanal tabloda bir sıralama düzeni uygularsınız.

StructuredParameter bağımsız değişkeni aşağıdaki söz dizimine sahiptir:

(FieldName, (Sort-type, Ordering))

Yapılandırılmış parametreler iç içe geçirilebilir:

(FieldName, (FieldName2, (Sort-type, Ordering)))

Sıralama türü şunlardan biri olabilir: NUMERIC, TEXT, FREQUENCY veya LOAD_ORDER.

Her Sıralama türü ile ilişkili Düzen türleri aşağıdaki gibidir:

Sıralama türü İzin verilen Düzen türleri
NUMERIC ASCENDING, DESCENDING veya REVERSE
TEXT ASCENDING, A2Z, DESCENDING, REVERSE veya Z2A
FREQUENCY DESCENDING, REVERSE veya ASCENDING
LOAD_ORDER ASCENDING, ORIGINAL, DESCENDING veya REVERSE

REVERSE ve DESCENDING düzen türleri eşdeğerdir.

TEXT Sıralama türü için ASCENDING ve A2Z düzen türleri ile DESCENDING, REVERSE ve Z2A düzen türleri eşdeğerdir.

LOAD_ORDER Sıralama türü için ASCENDING ve ORIGINAL düzen türleri eşdeğerdir.

Örnekler ve sonuçlar:  

Örnek Sonuç
Avg(Aggr(Sum(UnitSales*UnitPrice), Customer))

Aggr(Sum(UnitSales*UnitPrice), Customer) ifadesi Customer ölçütüne göre toplam satış değerini bulur ve bir değer dizisi döndürür: Üç Customer değeri için 295, 715 ve 120.

Bu durumda, değerleri içeren açık bir tablo veya sütun oluşturmadan geçici bir değer listesi oluşturmuş olduk.

Bu değerler Avg() fonksiyonu için giriş olarak kullanılır ve satışların ortalama değeri olarak 376,6667 bulunur. (Özellikler panelindeki Presentation bölümünden Toplamlar'ı seçmiş olmalısınız.

Aggr(NODISTINCT Max(UnitPrice), Customer)

Bir değer dizisi: 16, 16, 16, 25, 25, 25, 19 ve 19. nodistinct niteleyicisi, dizinin kaynak verilerdeki her satır için bir element içerdiği anlamına gelir: Bunların her biri, her Customer ve Product için en fazla UnitPrice değeridir.

max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear,(NUMERIC, ASCENDING))))

Şu ifadedeki StructuredParameter bağımsız değişkeninde bulunan sıralama ölçütleri kullanılarak: max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear,(NUMERIC, ASCENDING))))

Sıralama ölçütleri olmadığında, max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear))) ifadesinin sonucu MonthYear boyutunun nasıl sıralandığına bağlı olur. İstediğimiz sonuçları alamayabiliriz.

Boyuta sıralama türü ve düzen türü için değerler ekleyerek yapılandırılmış parametreye sıralama ölçütleri veririz: (MonthYear, (NUMERIC, ASCENDING)); burada, sıralama türü NUMERIC ve düzen türü ASCENDING, MonthYear öğesinin artan sayısal düzende sıralandığını belirler.

Burada, aydan aya müşteri sayısındaki en fazla artışı bulmaya çalışıyoruz. Bu, örneğin bir KPI görselleştirmesinde kullanılabilir.

İfadenin Aggr bölümü, bir ayın toplam müşteri sayısını (MonthYear tarafından sağlanır) önceki ayın toplam müşteri sayısı ile karşılaştırır.

Kullandığımız sıralama ölçütü (MonthYear,(NUMERIC, ASCENDING)) olduğundan, ayları artan alfabetik sıralama yerine artan sayısal sıralamaya göre sıralayarak Aggr fonksiyonunun tabloda yer alan ardışık aylara ait müşteri sayılarını karşılaştırdığından emin oluruz.

Örnekte kullanılan veriler:

Boyut olarak Customer, Product, UnitPrice ve UnitSales öğelerini içeren bir tablo oluşturun. İfadeyi bir hesaplama olarak tabloya ekleyin.

ProductData:

LOAD * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD|25|25

Canutility|AA|8|15

Canutility|CC||19

] (delimiter is '|');