Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
creepingdeath
Contributor II
Contributor II

Utiliser des group by dans le load script

Bonjour,

J'ai un fichier QVD de 1,5 Go contenant des données recueillies sur 3 mois et je souhaite créer des tableaux et des graphiques avec à chaque fois un group by différent.

Lorsque j'utilise ce genre d'expression sur un gros volume de données Qlikview plante pendant le chargement:

creepingdeath_0-1619446862602.png

 

- count(Aggr(count( {<Jalon_Couvert={"1"}>} Ordre),Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Technique_Detection,Source))

-count(TOTAL Aggr(count(Ordre),Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire))

-count(Aggr(count( {<Jalon_Couvert={"1"}>} Ordre),Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire))

-count(TOTAL <Type_Horaire> Aggr(count(Ordre),Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire))

et lorsque j'ai voulu déplacer toutes ces formules dans le code, j'ai obtenu des données incohérentes et erronées comme si il chargeait uniquement les données du dernier load

Taux_de_couverture_par_activité:
LOAD
count(Ordre) as nombre_de_jalons_couverts_par_activité,Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Code_Activite
RESIDENT TablePrincipale
where Jalon_Couvert=1
group by Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Code_Activite;

Total_par_activité:
Load
count(Ordre) as TOTAL_JALONS_PAR_ACTIVITE,Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Code_Activite
Resident TablePrincipale
group by Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Code_Activite;

Taux_de_couverture_par_technique_detection:
LOAD
count(Ordre) as nombre_de_jalons_couverts_par_technique_detection,Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Technique_Detection
RESIDENT TablePrincipale
where Jalon_Couvert=1
group by Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Technique_Detection;

Taux_de_couverture_par_technique_detection_et_source:
LOAD
count(Ordre) as nombre_de_jalons_couverts_par_technique_detection_et_source,Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Technique_Detection,Source
RESIDENT TablePrincipale
where Jalon_Couvert=1
group by Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Technique_Detection,Source;

 

NB: j'ai pas de serveur Qlikview et j'exécute les scripts sur ma machine.

Des idées pour contourner ce genre de problème ?

1 Reply
Seyko
Partner - Creator
Partner - Creator

Bonjour,

Je te conseillerai de créer un niveau supplémentaire dans ton architecture de QVD. En partant de ton QVD Table principale, tu crées d'autres QVD avec ces données agrégées que tu sauvegardes avec la clause STORE (un QVD pour un group by).  Autrement dit, tu te construis un générateur de QVD.

Cela devrait grandement améliorer la performance de ton application de travail.

Taux_de_couverture_par_activité:
LOAD
count(Ordre) as nombre_de_jalons_couverts_par_activité,Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Code_Activite
RESIDENT TablePrincipale
where Jalon_Couvert=1
group by Date_Circulation,Numero_Sillon,CR_CI_CH,Type_Horaire,Code_Activite;

// Sauvegarde de la table
STORE Taux_de_couverture_par_activité INTO 'lib://Folder/Taux_de_couverture_par_activité.qvd';

// Suppression de la table
DROP TABLE Taux_de_couverture_par_activité;

cordialement

Excuse my english, i'm french!