Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
theoat
Partner - Creator III
Partner - Creator III

Set analysis

Bonjour,

J'ai résolu un cas à l'aide de cette fonction. Mais lorsque j'augmente la volumétrie des données, l'objet affiche "mémoire objet insuffisante". Je pensais donc alléger cette fonction à l'aide d'un set analysis (ou autre si vous avez des recommandations.

 

sum(aggr( if(DateCommande>=max(total<Personne> DateLivraison),
		sum([Quantité])
    ),Personne,DateCommande))

 

Je vous laisse le jeu de données à télécharger et les réponses attendus en image.

 

LOAD * INLINE [
Personne,DateLivraison,Quantité,DateCommande
Igor,11/11/2022, 5,22/11/2023
Math,11/11/2022, 4,01/01/2023
Math,10/06/2023, 2,22/11/2023
Math,11/11/2022, 3,01/01/2023
Math,11/11/2022, 1,22/11/2023
Math,10/06/2023, 4,01/01/2023
Théo,10/08/2023, 3,01/01/2023
John,11/11/2022, 2,01/01/2023
John,10/08/2023, 2,22/11/2023
John,11/11/2022, 2,22/11/2023
John,10/06/2023, 1,01/01/2023
Jason,11/11/2022, 4,22/11/2023
Jason,10/06/2023, 5,01/01/2023
Filip,11/11/2022, 1,01/01/2023
Greg,11/11/2022, 1,22/11/2023
Greg,10/06/2023, 3,01/01/2023
David,11/11/2022, 2,01/01/2023
David,10/06/2023, 1,22/11/2023
David,11/11/2022,3 ,01/01/2023
Lola,11/11/2022, 2,23/11/2023
Lola,10/06/2023, 3,22/11/2023
]
;

 

Capture d'écran 2024-03-21 105213.png


Cordialement,
Théo ATRAGIE.

Labels (1)
1 Reply
LRuCelver
Partner - Creator III
Partner - Creator III

If the max(total<Personne> DateLivraison) doesn't need to be dynamic, I would ass a flag in the datamodel:

Data:
NoConcatenate Load
	Personne,
    Date(Date#(DateLivraison, 'DD/MM/YYYY')) as DateLivraison,
    Quantité,
    Date(Date#(DateCommande, 'DD/MM/YYYY')) as DateCommande
Inline [
Personne,DateLivraison,Quantité,DateCommande
Igor,11/11/2022, 5,22/11/2023
Math,11/11/2022, 4,01/01/2023
Math,10/06/2023, 2,22/11/2023
Math,11/11/2022, 3,01/01/2023
Math,11/11/2022, 1,22/11/2023
Math,10/06/2023, 4,01/01/2023
Théo,10/08/2023, 3,01/01/2023
John,11/11/2022, 2,01/01/2023
John,10/08/2023, 2,22/11/2023
John,11/11/2022, 2,22/11/2023
John,10/06/2023, 1,01/01/2023
Jason,11/11/2022, 4,22/11/2023
Jason,10/06/2023, 5,01/01/2023
Filip,11/11/2022, 1,01/01/2023
Greg,11/11/2022, 1,22/11/2023
Greg,10/06/2023, 3,01/01/2023
David,11/11/2022, 2,01/01/2023
David,10/06/2023, 1,22/11/2023
David,11/11/2022,3 ,01/01/2023
Lola,11/11/2022, 2,23/11/2023
Lola,10/06/2023, 3,22/11/2023
];

Join(Data) Load
	Personne,
    Max(DateLivraison) as MaxDateLivraison
Resident Data
Group By Personne;

Join(Data) Load Distinct
	Personne,
    DateCommande,
    If(DateCommande >= MaxDateLivraison, 1, 0) as Flag
Resident Data;

Drop Field MaxDateLivraison;

You can then use a simple set analysis:

Sum({<Flag = {1}>} [Quantité])