Toplama işlevleri
Toplama işlevleri olarak bilinen işlev ailesi, girdi olarak birden çok alan değeri alan ve grup başına tek bir sonuç döndüren işlevlerden oluşur; burada gruplandırma, kod deyiminde bir grafik boyutu veya bir group by cümlesi tarafından tanımlanır.
Toplama işlevleri arasında Sum(), Count(), Min(), Max() ve daha birçok işlev yer alır.
Çoğu toplama işlevi hem veri kod dosyasında hem de grafik ifadelerinde kullanılabilir, ancak söz dizimi farklılık gösterir.
Bir veri kod dosyasında toplama işlevleri kullanma
Toplama işlevleri yalnızca LOAD ve SELECT deyimleri 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.
Toplamaları hesaplama
Toplama, belirli bir tablonun kayıtları üzerinde döngü yaparak, içerdiği kayıtları toplar. Örneğin, Count(<Field>), <Field> öğesinin bulunduğu tablodaki kayıtların sayısını sayar. Yalnızca farklı alan değerlerini toplamak istiyorsanız, Count(distinct <Field>) örneğindeki gibi distinct tümcesini kullanmanız gerekir.
Toplama işlevi farklı tablolardan alanlar içeriyorsa işlevi kurucu alanların tablolarının çapraz ürün kayıtları üzerinde döngü yapar. Bunun performans açısından olumsuz bir yanı vardır ve bu nedenle, özellikle de büyük miktarda veriye sahip olduğunuzda, bu tür toplamalardan kaçınılmalıdır.
Anahtar alanların toplanması
Toplamaların hesaplanma şekli, toplama için hangi tablonun kullanılması gerektiği net olmadığı için anahtar alanları toplayamayacağınız anlamına gelir. Örneğin, <Key> alanı iki tabloyu birbirine bağlıyorsa, Count(<Key>) ifadesinin birinci tablonun kayıt sayısını mı yoksa ikinci tablonun kayıt sayısını mı döndüreceği net değildir
Ancak distinct cümlesini kullanırsanız iki tabloda bağlantılı bir anahtar alan için toplama iyi tanımlanmıştır ve hesaplanabilir.
Bir toplama işlevi içinde distinct cümlesi olmadan bir anahtar alan kullanırsanız QlikView anlamsız olabilecek bir sayı döndürecektir. Çözüm ya distinct cümlesini ya da anahtarın bir kopyasını (yalnızca tek bir tabloda bulunan bir kopya) kullanmaktır.
Örneğin, aşağıdaki tablolarda ProductID, tablolar arasındaki anahtardır.
Products ile Details tabloları arasında ProductId anahtarı

Count(ProductID), Products tablosunda (ürün başına yalnızca bir kayıt içerir, ProductID birincil anahtardır) veya Details tablosunda (büyük olasılıkla ürün başına birkaç kayıt içerir) sayılabilir. Farklı ürünlerin sayısını saymak istiyorsanız Count(distinct ProductID) kullanmalısınız. Belirli bir tablodaki satır sayısını saymak istiyorsanız anahtarı kullanmamalısınız.
Üç veya daha fazla tabloda bulunan anahtar alanlarının toplamları
distinct ön eki yalnızca iki adede kadar tabloyu bağlayan anahtar alanlarıyla çalışır. Üç veya daha fazla tabloda mevcut olan bir anahtar alan üzerinden bir toplamayı gruplarken bir alan için sıklık bilgisi gerektiren herhangi bir işlem NULL döndürecektir. Üç veya daha fazla tabloyu bağlayan bir anahtar alan olması durumunda, bunun yerine alanın anahtar olmayan kopyası kullanılmalıdır.