SAMPLE

SAMPLE(recordset, interval [, which ] [, UNORDERED | ORDERED( bool ) ] [, STABLE | UNSTABLE ] [, PARALLEL [ ( numthreads ) ] ] [, ALGORITHM( name ) ] )

recordsetThe set of records to sample. This may be the name of a dataset or a record set derived from some filter condition, or any expression that results in a derived record set.
intervalThe interval between records to return.
whichOptional. An integer specifying the ordinal number of the sample set to return. This is used to obtain multiple non-overlapping samples from the same recordset.
UNORDEREDOptional. Specifies the output record order is not significant.
ORDEREDSpecifies the significance of the output record order.
boolWhen False, specifies the output record order is not significant. When True, specifies the default output record order.
STABLEOptional. Specifies the input record order is significant.
UNSTABLEOptional. Specifies the input record order is not significant.
PARALLELOptional. Try to evaluate this activity in parallel.
numthreadsOptional. Try to evaluate this activity using numthreads threads.
ALGORITHMOptional. Override the algorithm used for this activity.
nameThe algorithm to use for this activity. Must be from the list of supported algorithms for the SORT function's STABLE and UNSTABLE options.
Return:SAMPLE returns a set of records.

The SAMPLE function returns a sample set of records from the nominated recordset.

Example:

personRecord := RECORD
  STRING UID;
  STRING first_name;
  STRING last_name;
  STRING address;
  STRING city;
  STRING state;
  STRING zip;
END;
person := DATASET([{'923','James','Jones','123 Elm Street','Hollywood','FL','33022'},
                   {'924','Sally','Jones','22 Main Street','Tampa','FL','33604'},
                   {'925','Jose','Gomez','111 Biscaya Lane','Miami','FL','33101'},
                   {'926','Adam','Wesson','77 Sunset Blvd','Boston','MA','02108'},
                   {'927','Evelyn','Murray','740 SW 10th Street','Boston ','MA','02116'},
                   {'928','Tom','Murray','740 SW 10th Street','Boston ','MA','02116'},
                   {'929','Joe','Yung','7511 Simson Avenue','Chicago','IL','60131'}], personRecord);
MySample1 := SAMPLE(Person,3,1); // returns every 3rd record

SomeFile := DATASET([{'A'},{'B'},{'C'},{'D'},{'E'},
                     {'F'},{'G'},{'H'},{'I'},{'J'},
                     {'K'},{'L'},{'M'},{'N'},{'O'},
                     {'P'},{'Q'},{'R'},{'S'},{'T'},
                     {'U'},{'V'},{'W'},{'X'},{'Y'}],
                     {STRING1 Letter});
MySample2 := SAMPLE(SomeFile,5,1); // returns A, F, K, P, U

OUTPUT(MySample1);
OUTPUT(MySample2);

See Also: CHOOSEN, ENTH