Ana içeriğe geç

Toplama fonksiyonları

Toplama işlevleri olarak bilinen fonksiyon ailesi, giriş değeri olarak birden fazla alan değeri alıp grup başına tek bir sonuç döndüren ve gruplamanın bir grafik boyutu veya kod içinde deyimindeki bir group by cümlesi ile tanımlandığı fonksiyonlardan oluşur.

Toplama işlevleri arasında Sum(), Count(), Min(), Max() ve daha birçok fonksiyon bulunur.

Çoğu toplama fonksiyonu hem veri yükleme kodunda hem de grafik ifadelerinde kullanılabilir, ancak söz dizimi farklılık gösterir.

Veri yükleme kodunda toplama fonksiyonları kullanma

Toplama fonksiyonları yalnızca LOAD ve SELECT deyimlerinin içinde kullanılabilir.

Grafik ifadelerinde toplama işlevleri kullanma

Toplama fonksiyonunun parametresi, TOTAL niteleyicisini içermeyen başka toplama fonskiyonlarını kullanmamalıdır. Daha gelişmiş iç içe toplamalar için, belirtilen boyut ile birlikte Aggr gelişmiş fonksiyonunu kullanın.

Toplama işlevi, seçim ile tanımlanan olası kayıtlar kümesi üzerinden toplanır. Bununla birlikte, set analizinde set ifadesi kullanılarak alternatif bir kayıt kümesi tanımlanabilir.

Set analizi ve set ifadeleri

Toplamalar nasıl hesaplanır

Bir toplama, belirli bir tablodaki kayıtlar üzerinde döngüyle dolaşarak tablonun içindeki kayıtları toplar. Örneğin, Count(<Field>), <Field> alanının bulunduğu tablodaki kayıtları sayar. Yalnızca benzersiz alan değerlerini toplamak isterseniz, distinct cümlesini kullanmanız gerekir; örneğin Count(distinct <Field>).

Toplama fonksiyonu farklı tablolardan alanlar içeriyorsa, fonksiyon, alınan alanların tablolarının küme çarpımının kayıtları üzerinde döngüyle dolaşır. Bunun performans üzerinde olumsuz bir sonucu olduğundan bu tür toplamalardan, özellikle de büyük miktarlarda veriniz olduğunda kaçınılmalıdır.

Anahtar alanlarının toplaması

Toplamaların hesaplanma yöntemi, toplama için hangi tablonun kullanılması gerektiğinin belirli olmaması nedeniyle anahtar alanlarının toplanamayacağı anlamına gelir. Örneğin <Key> alanı iki tabloyu bağlıyorsa, Count(<Key>) alanının ilk tablonun mu, ikinci tablonun mu kayıt sayısını döndüreceğinin belirli olmamasıdır.

Ancak, distinct cümlesini kullanıyorsanız, toplama düzgün olarak tanımlıdır ve hesaplanabilir.

Dolayısıyla bir toplama fonksiyonu içinde distinct cümlesi olmadan bir anahtar alanı kullanırsanız, QlikView anlamsız olabilecek bir sayı döndürür. Çözüm ya distinct cümlesini ya da anahtarın bir kopyasını; sadece bir tabloda duran bir kopyasını kullanmaktır.

Örneğin, aşağıdaki tablolarda ProductID tablolar arasındaki anahtardır.

Products ve Details tabloları arasındaki ProductID anahtarı

Geçerli seçimler örneği

Count(ProductID), Products tablosunda (ürün başın bir kayıt içerir – ProductID birincil anahtardır) veya Details tablosunda (olasılıkla ürün başına birkaç kayıt içerir) sayılabilir. Benzersiz ürünleri saymak istiyorsanız Count(distinct ProductID) kullanmalısınız. Belirli bir tablodaki satırları saymak istiyorsanız, anahtarı kullanmamanız gerekir.

Analiz Modernleştirme Programına katılın

Remove banner from view

Analiz Modernleştirme Programı ile değerli QlikView uygulamalarınızı ödün vermeden modernleştirin. Bize ulaşmak ve daha fazla bilgi almak için buraya tıklayın: ampquestions@qlik.com