You're welcome. Yes, it's a pretty useful way of looking at this kind of requirement. Forgot to say, I put the jobid in there too so you could verify on the test data which "end" went with which "start".
Notice the part (second code chunk, lines 3,4,6) where the code mvzips together multiple multivalue fields (3), immediately before the mvexpand turns them into multiple records (4), then has to break them apart again after the mvexpand (6). This is a common pattern.
It seems like a natural place where the mvexpand could be extended in some future release as | mvexpand time, cpu and do all that in one verb... but that's not available yet.
... View more