Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Aide pour conception script de chargement de données

Bonjour

Je débute en "langage qlik" et je me heurte à une difficulté pour charger des données sur un projet ou créer une mesure, je ne sais pas à quel endroit il faut que j'intervienne.

Le contexte : analyse de traçabilité des pratiques agricoles

J'ai une table d'interventions avec :

  • une table de liaison à des parcelles agricoles puis la table des parcelles (avec la surface, l'exploitant...)
  • une table de liaison aux produits utilisés (avec notamment la cible concernée) puis la table des produits (et des matières actives)

J'ai construit un schéma très linaire (trop ?) qui se rapproche de la conception de la bdd (cf ci-dessous).

CelaCapture.JPG.jpg fonctionne bien quand je sélectionne des parcelles ou des produits, la surface des parcelles concernées semble correcte. Par contre, je voudrais faire un calcul du nombre d'intervention pour chacune des cibles par parcelle puis agréger ensuite en une moyenne par exploitation, groupe et là, je bloque... J'ai essayé tout bêtement un COUNT(INTER_id) où inter_id est l'identifiant de mon intervention mais ça me fait bien trop de valeur...

Avez-vous une idée de la façon dont je dois construire le modèle de données ou, s'il est correct, faire mon calcul de nombre d'intervention par cible ?

Merci par avance

guen

1 Solution

Accepted Solutions
matthieu_burel
Luminary Alumni
Luminary Alumni

Bonsoir Gwen,

Désolé pour ma réponse tardive, pont du 11 novembre oblige 😉

Je suis très curieux de comprendre la raison de ton problème : j'adore les challenges

Je pense que la solution réside dans la construction du modèle de données et dans l'unicité de l'identifiant comme l'évoque Philippe.

PI : je te déconseille d'effectuer des comptages (& co) sur une clé de relation; le champ étant dans plusieurs tables, le résultat peut parfois être très surprenant.

Si tu n'y vois pas d'inconvénients, pourrais-tu me transmettre ton application (avec les data) pour t'aider à solutionner ton problème.

N'hésite pas à me contacter par mail.

Bonne soirée

Matthieu

View solution in original post

11 Replies
Michael_Tarallo
Employee
Employee

Salut Guen , permettez-moi de voir si je peux trouver quelqu'un pour vous aider .

Cordialement,

Mike Tarallo

Salut Matt , juste vérifier avec vous - est-ce quelque chose que vous pouvez jeter un oeil à ?

Matthieu BUREL

Regards,
Mike Tarallo
Qlik
pgrenier
Partner - Creator III
Partner - Creator III

Bonjour Guen,

En présumant qu'il y a plusieurs interventions produit par intervention, le Count(INTER_id) va avoir tendance à compter toutes les utilisations de la clé INTER_id plutôt que le nombre distinct de celles-ci. Vous pouvez utiliser l'expression Count(DISTINCT INTER_id) pour obtenir la valeur désirée.

Cordialement,

Philippe

Not applicable
Author

Bonjour et merci

Effectivement, j'y avais pensé et déjà testé mais cela me ressort tout de même un nombre bien trop important d'interventions... Il y a effectivement autant d'INTER_id que de relation intervention-produit mais aussi intervention-parcelle...

pgrenier
Partner - Creator III
Partner - Creator III

Et comment définissez-vous l'unicité d'une intervention dans votre modèle? Y aurait-il une clé cachée dans la table Interventions, ou peut-être est-ce plutôt un amalgame de champs qui compose la clé unique des interventions?

Si par hasard c'était le deuxième cas qui prévaudrait, vous pourriez vous ajouter une nouvelle colonne lors du chargement du contenu de la table Interventions ainsi:

LOAD *, AutoNumber([Champ1]&'~'&[Champ2]&'~'&[Champ3], '%Clé_Interventions') as %Clé_Interventions

From <table>;

L'expression [Champ1]&'~'&[Champ2]&'~'&[Champ3] permettrait en principe de représenter la clé composée unique, et en utilisant le tilde en guise de séparateur, cela permet d'éviter que les valeurs AAA, ABB, et BCC soient considérées à même type que AAAA, BBB et CC en les concaténant ensemble.

Par la suite, vous pouvez utiliser le champ numérique qui en résultera pour le Count(DISTINCT %Clé_Interventions).

Autrement, vous pouvez aussi y aller directement avec l'expression Count(DISTINCT [Champ1]&'~'&[Champ2]&'~'&[Champ3]), mais sur un grand nombre de données, ce sera définitivement moins efficace.

Cordialement,

Philippe

Not applicable
Author

merci bcp d'essayer de résoudre mon souci... La clef unique de ma table intervention existe (INTER_id) mais elle n'est pas unique (...) dans la table générée dans qlik sense puisqu'elle se répète pour chaque affectation à une parcelle ou chaque produit utilisé. j'essaye de créer une clef unique composée comme vous le proposez mais je ne suis pas sûr que cela soit la solution. Je me demande si ce n'est pas plutôt une histoire de regroupement (aggrégation) par parcelle pour ne compter le nombre d'intervention d'une cible qu'au niveau d'une parcelle (et faire ensuite la moyenne pour une exploitation). C'est possible de faire un décompte au sain d'un regroupement ?

pgrenier
Partner - Creator III
Partner - Creator III

Bonjour Guen,

Il y a effectivement moyen de forcer l’agrégat de données selon une dimension ou un groupe de dimensions avec la fonction Aggr(). Il y a des exemples très pratiques dans l'aide en ligne.

Pour accéder l'aide de Qlik Sense, vous devez d'abord vous assurer d'être connecté à l'internet, car l'aide est en ligne, contrairement à celle de QlikView qui est locale. Ensuite, lorsque vous être dans le "Data Load Editor", cliquez sur le bouton avec le symbole ? situé dans la partie supérieure de l'écran, vous serez dès lors en mode aide.

Ensuite, cliquez sur n'importe quel mot clé affiché en bleu souligné, et la rubrique associée sous help.qlik.com/sense sera affichée dans un nouvel onglet. Une fois dans l'aide, vous pouvez utiliser le champ de recherche pour trouver la rubrique associée à Aggr, vous allez voir, c'est plutôt efficace.

Au plaisir,

Philippe

Not applicable
Author

bon, je crois que j'abandonne... toutes les tentatives sont vaines (clef composée, fonction aggrégation, table creuse des faits...) il y a qq chose qui m'échappe dans la conception de base je pense ! Merci quand même d'avoir essayé de m'aider.... bonne soirée

guen

matthieu_burel
Luminary Alumni
Luminary Alumni

Bonsoir Gwen,

Désolé pour ma réponse tardive, pont du 11 novembre oblige 😉

Je suis très curieux de comprendre la raison de ton problème : j'adore les challenges

Je pense que la solution réside dans la construction du modèle de données et dans l'unicité de l'identifiant comme l'évoque Philippe.

PI : je te déconseille d'effectuer des comptages (& co) sur une clé de relation; le champ étant dans plusieurs tables, le résultat peut parfois être très surprenant.

Si tu n'y vois pas d'inconvénients, pourrais-tu me transmettre ton application (avec les data) pour t'aider à solutionner ton problème.

N'hésite pas à me contacter par mail.

Bonne soirée

Matthieu

matthieu_burel
Luminary Alumni
Luminary Alumni

Hi Michael,

Thanks for the message : I will try to help Gwen !

I can't let her lost in Sense 😉

See you

Matt