Peek() ou Previous() ? Deux fonctions qui ne regardent pas au même endroit
Previous() lit l’enregistrement d’entrée précédent ; Peek() lit une valeur déjà présente dans une table Qlik.
Image mentale
Previous() regarde en arrière dans le flux qui entre dans le LOAD. Peek() regarde dans une table Qlik déjà construite. Avec un WHERE ou un ORDER BY, ces deux « lignes précédentes » peuvent donc ne plus être les mêmes.
Le problème
La nuance devient importante dès qu’un WHERE, une transformation ou un tri intervient dans le chargement.
À surveiller
// Les deux fonctions ne sont pas interchangeables.
LOAD
Date,
Montant,
Previous(Montant) AS Montant_Precedent
RESIDENT Ventes;Écriture conseillée
VentesTriees:
LOAD
Date,
Montant,
Montant - Peek('Montant') AS Ecart
RESIDENT Ventes
ORDER BY Date;