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.

Syntax:  

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

Return data type: ikili

Arguments:  

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: (Boyut(Sıralama türü, Sıralama))

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

Sıralama ölçütleri dahil edilirse Aggr fonksiyonu tarafından oluşturulan ve boyut için hesaplanan değer dizisi sıralanır. Bu, sıralama düzeni Aggr fonksiyonunun bulunduğu ifadenin sonucunu etkilediğinde önemli olur.

Sıralama ölçütlerinin nasıl kullanılacağıyla ilgili ayrıntılar için bkz. Yapılandırılmış parametrede 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 aggr fonksiyonu, 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şebileceğ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üşteri bazında 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 düzey halinde iç içe geçmiş grafik toplamaları oluşturmak isterseniz hesaplanan boyutlarda Aggr() fonksiyonunu kullanın.

Limitations:  

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

Temel biçiminde, Aggr fonksiyon söz dizimindeki StructuredParameter bağımsız değişkeni tek bir boyuttur. İfade: Aggr(Sum(Sales, Month)), her bir ay için toplam satış değerini bulur. Ancak, başka bir toplama işlevine dahil edildiğinde, sıralama ölçütleri kullanılmazsa beklenmedik sonuçlar ortaya çıkabilir. Bunun nedeni, bazı boyutların sayısal veya alfabetik olarak sıralanması, vb. olabilir.

Aggr fonksiyonundaki StructuredParameter bağımsız değişkeninde, ifadenizdeki boyutta sıralama ölçütlerini belirtebilirsiniz. Bu şekilde, 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çebilir:

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

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

Her Sıralama türüyle ilişkilendirilen Düzenleme türleri şöyledir:

Sıralama türü İzin verilen Düzenleme 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üzenleme türleri eşdeğerdir.

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

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

Examples and results:  

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

Aggr(Sum(UnitSales*UnitPrice), Customer) ifadesi, Customer bazında toplam satış değerini bulur ve şu değerlerden oluşan bir dizi döndürür: üç Customer değeri için 295, 715, ve 120.

Değerleri içeren özel bir tablo veya sütun oluşturmak zorunda kalmadan etkili bir şekilde değerlerin geçici listesini oluşturduk.

Bu değerler Avg() fonksiyonu için giriş olarak kullanılır ve satışların ortalama değeri olarak 376,6667 bulunur. (Özellikler panelinde, Sunum altında Toplamlar seçilmiş olmalıdır).

Aggr(NODISTINCT Max(UnitPrice), Customer)

Değer dizisi: 16, 16, 16, 25, 25, 25, 19 ve 19. nodistinct niteleyicisi, dizinin kaynak verilerindeki her satır için bir öğe içerdiği anlamına gelir: her biri, her Customer ve Product için maksimum UnitPrice değeridir.

Örneklerde kullanılan veriler:

Customer, Product, UnitPrice ve UnitSales boyutlarından oluşan bir tablo oluşturun. İfadeyi tabloya bir hesaplama olarak 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 '|');

 

Examples and results: Yapılandırılmış parametreler

Örnek Sonuç
Sum(Aggr( Rangesum(Above(Sum(Sales),0,12)), (Year, (Numeric, Ascending)), (Month, (Numeric, Ascending)) ))

Bu hesaplama, ifadedeki yapılandırılmış parametre bağımsız değişkeninde sıralama ölçütlerini kullanarak her ay için yılın başından geçerli tarihe kadar olan satış rakamlarını hesaplar.

Sıralama ölçütleri olmadan Sum(Aggr( Rangesum(Above(Sum(Sales),0,12)), (Year), (Month) )) ifadesinin sonucu, Year ve Month boyutunun nasıl sıralandığına bağlı olur. İstediğimiz sonucu elde edemeyebiliriz.

Sıralama ve düzenleme türü değerlerini boyuta ekleyerek, sıralama ölçütünü yapılandırılmış parametreye atarız: (Year, (Numeric, Ascending)), (Month, (Numeric, Ascending)). NUMERIC sıralama türü ve ASCENDING düzenleme değerleri, Year ve Month değerlerinin artan sayısal düzende sıralandığını belirler.

Örneklerde kullanılan veriler:

Aşağıdaki komut dosyası, yapılandırılmış parametreler örneği için kullanılacak sıralama satırlarını içeren bir sıralama tablosu oluşturur.

Set vNumberOfOrders = 1000; OrderLines: Load RowNo() as OrderLineID, OrderID, OrderDate, Round((Year(OrderDate)-2005)*1000*Rand()*Rand()*Rand1) as Sales While Rand()<=0.5 or IterNo()=1; Load * Where OrderDate<=Today(); Load Rand() as Rand1, Date(MakeDate(2013)+Floor((365*4+1)*Rand())) as OrderDate, RecNo() as OrderID Autogenerate vNumberOfOrders; Calendar: Load distinct Year(OrderDate) as Year, Month(OrderDate) as Month, OrderDate Resident OrderLines;

Bir tabloda veya ayrı çizgi grafiklerde bu hesaplamalar arasındaki farkı karşılaştırabilirsiniz:

  • Sum(Aggr( Rangesum(Above(Sum(Sales),0,12)), (Year), (Month) ))
  • Sum(Aggr( Rangesum(Above(Sum(Sales),0,12)), (Year, (Numeric, Ascending)), (Month, (Numeric, Ascending)) ))

İkinci hesaplama yılın başından geçerli tarihe kadar olan, her ay için doğru satış rakamlarını verir.