Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 :
J'ai construit un schéma très linaire (trop ?) qui se rapproche de la conception de la bdd (cf ci-dessous).
Cela 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
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
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 à ?
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
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...
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
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 ?
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
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
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
Hi Michael,
Thanks for the message : I will try to help Gwen !
I can't let her lost in Sense 😉
See you
Matt