Looker uses a special join methodology to prevent developers and users from accidentally double-counting or double-adding values when they use measures like counts or sums (a.k.a. “aggregate functions” in SQL terms). This feature is called “Symmetric Aggregates.” You can read more about the feature in this Discourse post. You can read more about the problem it solves in this blog post.
Symmetric Aggregates are associated with the Non-Symmetric Aggregates legacy feature (for more details see the Legacy Features docs page):
- From release 3.16 to 4.18, the legacy feature is on by default, which means that you will not be using Symmetric Aggregates
- From release 4.20 to 4.22, the legacy feature is off by default, which means you will be using Symmetric Aggregates
- As of release 5.0, Symmetric Aggregates are always on unless you disable them with the
Without symmetric aggregates, you need to be careful that you avoid fanouts when defining your joins in Looker. See this blog post to understand what a “fanout” is and how you can address it them without Symmetric Aggregates.
Once you enable Symmetric Aggregates you just need to make sure you define the proper LookML parameters, then Looker takes care of the fanout problem for you. Be sure to define a
primary_key in each view, and be sure to proper define all the necessary join parameters as described on this docs page.