Pourquoi y a-t-il un recalcul inattendu des colonnes sans formules ?J'utilise souvent JMP pour prototyper des pipelines de données : je calcule les valeurs des colonnes d'une table, puis j'interroge les données d'une autre table en fonction des résultats. J'ai remarqué un comportement qui me paraît très étrange et contre-intuitif. Imaginons que j'ai une table à trois colonnes :

Les deuxième et troisième colonnes sont calculées comme Lag ( :Column 1 ) et Col Sum ( :Column 1 ).
Maintenant, j'interroge les lignes dans une nouvelle table où : Colonne 1 > 2. Le résultat est :

Les valeurs « :Lag of Column 1 » et « :Column 1 Sum » sont recalculées, car la table a hérité des formules. C'est compréhensible.
Mais que se passe-t-il si je supprime les formules et que je mets à jour la table ? Comme je n'ai pas de formules et que je ne recalcule pas les valeurs dans la table de destination, je verrai les données telles qu'elles sont dans la table source, n'est-ce pas ? Devinez quoi ? Faux ! Rien ne change. Je vois toujours null, 3 et 7, 7, et non 2, 3 et 10, 10.
Est-ce un défaut ? Ou est-ce normal ? Comment l'expliquer ?
Merci!
Automatisation et scriptsRe : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?Aïe, un mélange étonnamment toxique : Query Builder et formules de colonnes !
Certains paramètres comme dans Sous-ensemble

Cela éliminerait beaucoup de maux de tête.
En plus de cela : une belle loupe pour les rouages de JMP : )
Quelle version de JMP ? Pouvez-vous partager les étapes du journal ?
Je l'ai testé avec JMP 18.2.2 et 19.0, où Décalage() est exécuté après l'exécution de la requête, Somme des colonnes() ne le fait pas.
Après avoir supprimé les formules, tout va bien.
[peut-être : avez-vous fait référence à une ancienne table de données « sans titre » - avec des formules ?]


names default to here(1);
dt = New Table( "Untitled",
Add Rows( 4 ),
New Column( "Column 1",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4] )
),
New Column( "Sum[Column 1]",
Formula( Col Sum( :Column 1 ) )
),
New Column( "Lag[Column 1]",
Formula( Lag( :Column 1, 1) )
)
);
dt << run formulas();
wait(0);
queryDT= Expr(New SQL Query(
Connection( "JMP" ),
Select(
Column( "Column 1", "t1" ),
Column( "Sum[Column 1]", "t1" ),
Column( "Lag[Column 1]", "t1" )
),
From( Table( "Untitled", Alias( "t1" ) ) ),
Where(
GT(
Column( "Column 1", "t1" ),
2,
UI( Comparison( Base( "Continuous" ) ) )
)
)
) << Run Foreground);
queryDT;
Column (dt, 2) << delete formula();
Column (dt, 3) << delete formula();
wait(0);
queryDT;
wait(0);
dt << set name("input");
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?Effectuez-vous la requête sur la table de données JMP ? Supprimez-vous les formules de quelle table ? Pouvez-vous partager des exemples de jeux de données pour reproduire le problème ?
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?Oui, la deuxième table de la deuxième capture d'écran résulte de l'interrogation de la première table de données JMP de la première capture d'écran. Les tables sont jointes ; placez-les dans le même dossier et exécutez le script « Mettre à jour depuis la base de données » dans la deuxième table. Cette dernière ne contient pas de formules ; pourtant, les résultats sont comme si les formules existaient et avaient été évaluées.
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?JMP Pro V.17
Les tableaux sont joints.
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?Ce n'est pas une solution de contournement intéressante, mais vous pouvez supprimer temporairement l'évaluation de la formule de la table d'origine, exécuter la requête et réactiver l'évaluation de la formule (cela devrait, à mon avis, déjà se produire par Query Builder).

De plus, je contacterais le support JMP à ce sujet car il se passe des choses étranges, support JMP
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?suggestion pour JMP 19.1 :
Générateur de requêtes : désactiver la colonne de formule
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?Ah, j'ai mal interprété le
Mais que se passe-t-il si je supprime les formules et mets à jour le tableau ?
OK, toujours pareil dans JMP19.
Ainsi, JMP exécute la requête (y compris les formules) et remplace les données de la table cible par les nouveaux résultats ?
C'est exactement ce à quoi je m'attendais avec « Mettre à jour ». Mais pourquoi JMP ne peut-il pas effectuer une mise à jour du type « Conserver la table, mettre à jour les données » si une nouvelle colonne a été ajoutée entre-temps ? Concernant Colonne 4 , il semble plutôt qu'il supprime tout ce qui était présent et le remplace par les nouveaux résultats de la requête.
Peut-être : il prend le résultat de la requête, mais copie et applique les anciens paramètres de colonne ?
... supprimant ainsi la formule de la colonne - et masquant le problème ?
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?Oui, cette solution fonctionne. Une autre solution, un peu complexe, consiste à interroger toutes les lignes d'une table intermédiaire sans formules , puis à interroger cette table intermédiaire.
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?Quelle a été la réponse du support JMP ?
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?Je ne les ai pas contactés. Je préfère compter sur cette communauté et sur moi-même.:)
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?Hm, je préfère une solution officielle plutôt que des « solutions de contournement ».
Faites-le réparer et oubliez-le.
trouvez une solution de contournement et n'oubliez pas !!
- et n'oubliez pas de le dire à tous vos collègues !
Re : Pourquoi y a-t-il un recalcul aussi inattendu des colonnes sans formules ?Concernant « la communauté et moi-même » - j'ai ajouté le sujet à
Attention : endroits où Jmp fait quelque chose d'inattendu
D’un autre côté, je suis assez confiant que ce problème peut être résolu dans l’interface graphique.
Des options similaires à celles du sous-ensemble pourraient aider le client à comprendre le problème, et l’option par défaut devrait être de supprimer ou de désactiver la colonne de formule.

Voyons si ce comportement est considéré comme un bug : TS-00244891.
Sinon, cela prendra plus de temps, car nous devons d'abord collecter suffisamment de Kudos sur la liste de souhaits : Générateur de requêtes : désactiver la colonne de formule