Just adding few possible options if the data isn't always sorted.
Using matrix calculations to get the indices
As Constant(
times = :Time << get as matrix;
batches = :Batch << get as matrix;
);
batch_rows = Loc(batches, :Batch);
batch_first_time_row = batch_rows[Loc Min(times[batch_rows])];
:Result - :Result[batch_first_time_row];
and using Col Sum to get the minimum value with comparison and product (if :Time isn't the smallest multiplier is 0).
:Result - Col Sum((:Time == Col Min(:Time, :Batch)) * :Result, :Batch);
-Jarmo