Qlik Community

Ask a Question

Qlik Design Blog

All about product and Qlik solutions: scripting, data modeling, visual design, extensions, best practices, etc.

Announcements
Welcome to our newly redesigned Qlik Community! Read our blog to learn about all the new updates: READ BLOG and REPORTED ISSUES
Creator
Creator

The AGGR Function.....

Capture.JPG

I thought I would start this blog post with a simple multiple choice question:

Is AGGR.....

a - Used in many QlikView applications to great effect
b - Mis-used in many QlikView applications
c - Used to return an answer without really knowing why you get the answer
d - Not used at all because we're "not quite sure what is does"
e - All of the above

The answer in my opinion is "e - All of the above".

When I came to write this post and indeed the technical brief, the hardest part of all was actually coming up with a really good, easy to understand description of AGGR, as it has to make sense to both "technical" and "not so technical" people. I finally settled on the one below...

When it is used, the AGGR function produces a virtual table, with one expression and grouped by one or more dimensions. The contents / result of this virtual table can then be used / aggregated by a further outer aggregation function(s).

With this definition in mind, I have produced a Technical Brief and application which can be found here and here. In this document I have tried to provide an overview of the function and provided some examples of where it can be used to great effect.

So, when should you use AGGR? The answer is: Whenever you want to perform an aggregation in two steps. In the technical brief we show you some scenarios like.....

  • Largest average order value for each Salesperson for each Country, where average order value for each Salesperson is the first calculation and the largest in each Country is the second.
  • The Salesperson responsible for the largest average order value in each Country
  • How many Salespeople have average order values of less than $100 in each Country

I would also be interested in any other creative and powerful uses of AGGR you may have.


Thanks.

ABY

19 Comments
Partner
Partner

Adam, thank you for the comprehensive explanation of aggr(). I wish this documentation had been part of the online help when aggr() was introduced, because then it wouldn't have taken me so long to figure out how it works and when to use it. This document should clear away some of the "aggravation".

0 Likes
2,916 Views
Specialist
Specialist

Saludos Miguel Angel... pudieras ver este anexo y ver como puedo resolverlo.  He tratado usando la funcion Aggr, pero no he podido dar con la solucion.

gracias.

No puedo agregar el ejemplo... como se lo hago llegar?

0 Likes
2,916 Views
Not applicable

Well speaking of typical use its definitelly avg stock value for each item in every warehouse.

Thanks for tutorial btw

0 Likes
2,916 Views
Partner
Partner

Greetings!

Thanks for posting the article. I am not sure of whether or not I should ask this question here, so I'll apologize in advance and ask for assistance with the following issue that I am facing when using AGGR in what I expected to be a very simple expression - which is not showing the results I think I should get.

In the pivot table on the left side of the image bellow, you will find generated sales data for sales people over a four month period.  If you look at data for one of the salesmen, say "T", and mentally calculate the average number of sales for the four month period, it would come to be 5.5.  However, if I use AGGR to do this calculation as a second expression in the chart and table to the right (using only Salesman as dimension) the value will not be correct (QV calculates it to be 54.3636).  Furthermore, if one selects the value of "T" for Salesman, the avg is calculated to be 5.9.  If I remove the nodistinct parameter from aggr, only three of the sales people will show results (O, P and T), but still all incorrect. However, selecting any of the three sales people which appear to have (incorrect) results will further show its correct value for the average number of sales transactions per month.

Problem with inner AGGR.JPG.jpg

Can someone explain why is this happening?

Thanks!

--José

0 Likes
2,916 Views
Specialist
Specialist

Envíame el qvw para verlo

Juan Olivares

0 Likes
2,916 Views
Not applicable

I have read and used the AGGR technical brief many times - a great document.

It is amazing how many QV developers dont know or really understand this function - and hence problems try get solved in the data model etc.

By far the best function in QV!

0 Likes
2,916 Views