Voici le script simple qui crée une nouvelle colonne avec une formule qui calcule la durée depuis le début de chaque lot

names default to here( 1 );
dt = Current Data Table();
dt << New Column( "Duration",
Format( ":day:hr:m:s", 21, 3 ),
formula(
If( Row() == 1 | :Batch != Lag( :Batch ),
start = :Timestamp
);
:Timestamp - start;
)
);
Salut à tous,
J'ai commencé à utiliser JSL et je suis actuellement au niveau débutant.
Mes données se composent de données de lot de séries chronologiques pour différentes variables de processus. Chaque lot a une plage chronologique / temps de traitement différents. La résolution des données est de 1 heure.

Tout d'abord, je veux convertir l'heure de début du lot (temps réel) en temps de durée commençant au point de temps zéro (0), puis s'accumuler jusqu'à la fin en temps réel. Je pense que j'arrive à le faire en utilisant un script que j'ai trouvé en ligne. Cependant, cela ne fonctionne que pour le premier lot.
Pour le deuxième lot, la conversion en temps réel en temps de durée ne commence pas au point de temps zéro.
Question: Comment puis-je créer / modifier le script, afin qu'il prenne en compte chaque ID de lot et le temps de traitement respectif?
Merci d'avance
SCÉNARIO
names default to here (1);
dt = current data table ();
dt << New Column( "Duration",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Row() == 1, 0, :TimeStamp - :TimeStamp[1] ) / 60
)
);
Cette alternative utilise une fonction intégrée, Col Minimum (x, group).

Merci beaucoup Mark. Cela fonctionne très bien. Joyeux Noël 