-
Notifications
You must be signed in to change notification settings - Fork 1
Description
🐞 Problème de déduplication des session_token lors de l’analyse croisée des catégories Distill
Contexte
Dans le cadre de l’exploration des résultats de Distill, des catégories automatiques sont apposées :
- aux questions
- et aux répondants via un identifiant
session_token.
Le fichier généré suit la règle :
- 1 ligne = 1 appairage
session_token⇔category - donc plusieurs lignes possibles pour un même
session_token(multi-catégorisation).
Problème
Lorsqu’on souhaite croiser ces catégories avec le reste du questionnaire, il faut joindre cette table au modèle principal.
➡️ Cette jointure multiplie les lignes par session_token, ce qui :
- fausse les indicateurs existants
- et change les agrégations selon le type de question.
Cas à traiter
1) Questions single_option
Actuel : on fait un count du nombre de lignes.
Problème : les doublons liés aux catégories gonflent artificiellement les comptes.
✅ Attendu : dédupliquer sur session_token directement dans le script (ou via une clé d’unicité), pour compter le nombre réel de répondants.
2) Questions multiple_option
Contrainte : il y a déjà plusieurs lignes par session_token (une par réponse).
➡️ Un distinct uniquement sur session_token ne fonctionne pas.
✅ Solution : créer une clé d’unicité basée sur la combinaison :
(session_token, answer)
dans une nouvelle colonne : unicity_key_answer.
Puis utiliser cette clé pour effectuer les distinct / agrégations correctement :
3) Questions sorting_points
Problème spécifique : ne pas sur-pondérer les questions ayant plusieurs lignes dans le calcul de la somme par réponse.
✅ Approche en 2 étapes :
-
Réaliser un premier résumé (moyenne) de
sorting_pointspar :(unicity_key_answer, answer)- on ajoute
answeruniquement pour le conserver au second résumé (sans changer l’agrégation)
-
Réaliser un second résumé :
SUMdu résultat précédent groupé paranswer- puis tri décroissant
➡️ Cela permet de dédupliquer par session_token avant de sommer, et donc d’obtenir une somme “réelle” des points.
Résultat attendu
-
Les statistiques restent stables et correctes même après jointure avec les catégories Distill.
-
Les agrégations sont adaptées selon le type de question :
single_option: distinct sursession_tokenmultiple_option: distinct sur(session_token, answer)viaunicity_key_answersorting_points: agrégation en deux passes pour éviter la sur-pondération
Pistes d’implémentation
-
Ajouter / standardiser la colonne
unicity_key_answerdans le modèle (ou en amont à l’import). -
Adapter les scripts d’agrégation / indicateurs existants pour utiliser :
session_tokendistinct (single)unicity_key_answerdistinct (multiple + sorting)