Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Utilizzo spesso JMP per prototipare pipeline di dati, calcolando i valori delle colonne in una tabella e quindi interrogando i dati in un'altra tabella in base ai risultati del calcolo. Ho notato un comportamento che mi sembra molto strano e controintuitivo. Supponiamo di avere una tabella con tre colonne:

La seconda e la terza colonna vengono calcolate come Lag ( :Colonna 1 ) e Col Sum ( :Colonna 1 ).
Ora interrogo le righe in una nuova tabella in cui: Colonna 1 > 2. Il risultato è:

":Lag of Column 1" e ":Column 1 Sum" vengono ricalcolati, poiché la tabella ha ereditato le formule. Questo è comprensibile.
Ma cosa succede se elimino le formule e aggiorno la tabella? In tal caso, dato che non ho formule e non ricalcolo i valori nella tabella di destinazione, vedrò i dati così come sono nella tabella di origine, giusto? Indovina un po', sbagliato! Non cambia nulla. Vedo ancora null, 3 e 7, 7 non 2, 3 e 10, 10.
Si tratta di un difetto? O è come previsto? Come si può spiegare?
Grazie!
Automazione e scriptingRe: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Ahi, una miscela sorprendentemente tossica: Query Builder e formule di colonna!
Alcune impostazioni come in Subset

eliminerebbe molti mal di testa.
Oltre a ciò: una bella lente d'ingrandimento per i dettagli di JMP : )
Quale versione di JMP? Puoi condividere i passaggi dal log?
L'ho testato con JMP 18.2.2 e 19.0, dove Ritardo() viene eseguito dopo l'esecuzione della query, mentre Col Sum() no.
Dopo aver rimosso le formule, tutto è a posto.
[forse: hai fatto riferimento a una vecchia tabella dati "senza titolo" - con formule?]


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: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Stai eseguendo la query sulla tabella dati JMP? Stai rimuovendo le formule da quale tabella? Puoi condividere set di dati di esempio per replicare il problema?
Re: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Sì, la seconda tabella nel secondo screenshot è il risultato dell'interrogazione della prima tabella dati JMP nel primo screenshot. Le tabelle sono allegate: posizionatele nella stessa cartella ed eseguite lo script "Aggiorna dal database" nel secondo screenshot. La seconda tabella non contiene formule; tuttavia, i risultati sono come se le formule esistessero e fossero state valutate.
Re: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?JMP Pro V.17
Le tabelle sono allegate.
Re: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Non è una bella soluzione alternativa, ma puoi sopprimere temporaneamente la valutazione della formula dalla tabella originale, eseguire la query e riattivare la valutazione della formula (a mio parere, questo dovrebbe già essere fatto da Query Builder).

Inoltre, contatterei l'assistenza JMP a riguardo poiché si sta verificando qualche stranezza, Assistenza JMP
Re: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?suggerimento per JMP 19.1:
Generatore di query: disabilita la colonna formula
Re: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Ah, ho interpretato male il
Ma cosa succede se elimino le formule e aggiorno la tabella?
OK, è sempre lo stesso in JMP19.
Quindi, JMP esegue la query (incluse le formule) e sostituisce i dati nella tabella di destinazione con i nuovi risultati?
In realtà, questo è ciò che mi aspettavo con "Aggiorna". Ma perché JMP non riesce a eseguire un aggiornamento del tipo "mantieni la tabella, aggiorna solo i dati " se nel frattempo è stata aggiunta una nuova colonna? Per quanto riguarda Colonna 4 , sembra più che elimini tutto ciò che era presente e lo sostituisca con i nuovi risultati della query.
Forse: prende il risultato della query, ma copia e applica le vecchie impostazioni della colonna?
... rimuovendo così la formula della colonna e nascondendo il problema?
Re: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Sì, questa soluzione alternativa funziona. Un'altra soluzione alternativa un po' macchinosa che utilizzo è quella di interrogare tutte le righe in una tabella intermedia senza formule e poi interrogare questa tabella intermedia.
Re: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Qual è stata la risposta del supporto JMP?
Re: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Non li ho contattati. Preferisco contare su questa comunità e su me stesso.:)
Re: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Mmm, preferisco una soluzione ufficiale alle "soluzioni alternative".
riparalo e dimenticatene.
trova una soluzione alternativa e non dimenticare!!
- e non dimenticare di dirlo a tutti i tuoi colleghi!
Re: Perché si verifica un ricalcolo così inaspettato delle colonne senza formule?Per quanto riguarda "la comunità e me stesso" - ho aggiunto l'argomento a
Attenzione: Luoghi in cui Jmp fa qualcosa di inaspettato
D'altro canto, sono abbastanza fiducioso che questo problema possa essere risolto nella GUI.
Opzioni simili a quelle presenti in Subset potrebbero aiutare il cliente a comprendere il problema e l'opzione predefinita dovrebbe essere quella di rimuovere o disabilitare la colonna formula.

Vediamo se questo comportamento è considerato un bug: TS-00244891.
In caso contrario, ci vorrà più tempo, poiché prima dobbiamo raccogliere abbastanza Kudos nella lista dei desideri: Query Builder: disabilita la colonna formula