Yes, this clever way of preparing the data i extremely helpful:
examples of how the magic works:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Clear Select << Select Rows( Index( 5, 40 ) ) <<Delete Rows;
newCol=New Column("new");
newCol << Set each value(Col Min(Print(row());:height,:age)); // 4 rows
newCol << Set Formula(Col Min(Print(row());:height,:age)); // 2 x 4
newCol << Set each value(Col Min(Col Max(Print(row());:height,:sex),:age)); // 4 + 4
newCol << Set Formula(Col Min(Col Max(Print(row());:height,:sex),:age)); // 2 x 4 + 4
Please make sure that you don't run into one of these taps:
i=1;
newCol << set each value (Col Min(Print("X");:height,:age)); // 16 = 4 x 4
newCol << set Formula (Col Min(Print("X");:height,:age)); // 20 = 5 x 4
newCol << set Formula (Col Min("x";Print(3);:height,:age)); // 20 = 5 x 4
newCol << Set Formula(Col Min(i;Print(row());:height,:age)); // 20 = 5 x 4
newCol << set each value (Col Min(Col Max(Print("X");:height,:sex),:age)); // 80 = 5 x 4 x 4
newCol << set Formula (Col Min(Col Max(Print("X");:height,:sex),:age)); // 100 = 5 x 5 x 4
newCol << set Formula (Col Min(Col Max("X";Print(3);:height,:sex),:age)); // 100 = 5 x 5 x 4
newCol << Set Formula(Col Min(Col Max(i;Print(row());:height,:sex),:age)); // 100 = 5 x 5 x 4
Col aggregations get cautious when they see
then they switch to a reduced speed and calculate every value for every row (+1) ... in a hierarchical tree.