Aggr()

Crée un calcul intermédiaire par dimension afin qu’une agrégation externe puisse ensuite exploiter les valeurs obtenues.

Présentation

Un tableau de bord de supervision doit compter les sites qui cumulent au moins trois incidents critiques, sans compter plusieurs fois le même site. Aggr() réalise d'abord le décompte des tickets pour chaque site ; une seconde agrégation additionne les sites qui franchissent le seuil. C'est un calcul à deux niveaux, sans table intermédiaire dans le script. Vérifie le grain retenu et le contexte de sélection : le résultat change si tu analyses un autre périmètre ou une autre période.

Syntaxe

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

Exemple pratique

Compter les sites dépassant un seuil d’incidents critiques

Cas SOSBI · supervision. Plusieurs tickets concernent un même site ; le KPI doit compter les sites qui atteignent au moins trois incidents critiques, et non les tickets eux-mêmes.

Expression Qlik

Sum(Aggr(If(Count({<Criticite={'Critique'}>} TicketID) >= 3, 1, 0), Site))

Données de départ

Incidents de la période
SiteTicketIDCriticite
Site AlphaINC-201Critique
Site AlphaINC-202Critique
Site AlphaINC-203Critique
Site BetaINC-204Critique
Site BetaINC-205Mineure
Site GammaINC-206Critique
Site GammaINC-207Critique
Site GammaINC-208Critique
Site GammaINC-209Mineure

Calcul intermédiaire

Résultat intermédiaire par site
SiteIncidents critiquesSeuil atteint
Site Alpha31
Site Beta10
Site Gamma31

Résultat

2 sites ont atteint le seuil de trois incidents critiques.

Aggr() évalue le seuil séparément pour chaque site ; Sum() additionne ensuite les indicateurs 1 ou 0. À utiliser dans un KPI sans dimension, sur la période sélectionnée.

Précisions techniques

  • DISTINCT est le comportement par défaut : chaque combinaison distincte des dimensions produit une seule valeur dans le tableau virtuel.
  • NODISTINCT peut produire plusieurs valeurs pour une même combinaison dimensionnelle. Avec une seule dimension, le tableau contient autant d’éléments que la source contient de lignes.
  • Exemple : Aggr(Sum(Montant), Client) produit [150, 100], alors que Aggr(NODISTINCT Sum(Montant), Client) peut produire [150, 150, 100, 100] pour quatre lignes source.
  • Aggr() renvoie un tableau virtuel. Il est généralement imbriqué dans une agrégation externe telle que Avg(), Max(), Sum() ou FirstSortedValue().
  • Chaque dimension doit être un champ unique, pas une expression calculée.
  • L’ordre peut être imposé avec un paramètre structuré, par exemple (Mois, (NUMERIC, ASCENDING)). C’est indispensable lorsque Above(), Below() ou RangeSum() dépendent de l’ordre des lignes.
  • Une expression de Set Analysis peut être placée avant le qualificateur DISTINCT ou NODISTINCT pour modifier l’ensemble de données utilisé.