REGROUP(recset,...,recset [, UNORDERED | ORDERED( bool ) ] [, STABLE | UNSTABLE ] [, PARALLEL [ ( numthreads ) ] ] [, ALGORITHM( name ) ] )
recset | A grouped set of records. Each recset must be of exactly the same type and must contain the same number of groups. |
UNORDERED | Optional. Specifies the output record order is not significant. |
ORDERED | Specifies the significance of the output record order. |
bool | When False, specifies the output record order is not significant. When True, specifies the default output record order. |
STABLE | Optional. Specifies the input record order is significant. |
UNSTABLE | Optional. Specifies the input record order is not significant. |
PARALLEL | Optional. Try to evaluate this activity in parallel. |
numthreads | Optional. Try to evaluate this activity using numthreads threads. |
ALGORITHM | Optional. Override the algorithm used for this activity. |
name | The algorithm to use for this activity. Must be from the list of supported algorithms for the SORT function's STABLE and UNSTABLE options. |
Return: | REGROUP returns a record set. |
The REGROUP function combines the grouped recsets into a single grouped record set. This is accomplished by combining each group in the first recset with the groups in the same ordinal position within each subsequent recset.
Example:
inrec := {UNSIGNED6 did}; outrec := RECORD(inrec) STRING20 name; UNSIGNED score; END; ds := DATASET([1,2,3,4,5,6], inrec); dsg := GROUP(ds, ROW); i1 := DATASET([{1, 'Kevin', 10}, {2, 'Richard', 5}, {5, 'Nigel', 2}, {0, '', 0}], outrec); i2 := DATASET([{1, 'Kevin Halligan', 12}, {2, 'Ricardo Chapman', 15}, {3, 'Jake Smith', 20}, {5, 'David Hicks', 100}, {0, '', 0}], outrec); i3 := DATASET([{1, 'Halligan', 8}, {2, 'Ricardo', 8}, {6, 'Pete', 4}, {6, 'Peter', 8}, {6, 'Petie', 1}, {0, '', 0}], outrec); j1 := JOIN(dsg, i1, LEFT.did = RIGHT.did, LEFT OUTER, MANY LOOKUP); j2 := JOIN(dsg, i2, LEFT.did = RIGHT.did, LEFT OUTER, MANY LOOKUP); j3 := JOIN(dsg, i3, LEFT.did = RIGHT.did, LEFT OUTER, MANY LOOKUP); combined := REGROUP(j1, j2, j3); OUTPUT(j1); OUTPUT(j2); OUTPUT(j3); OUTPUT(combined);