**ENTH(***recordset, numerator
***[***, denominator
***[***, which
***] ] [**,**
LOCAL] ****[, UNORDERED |
ORDERED(** *bool ***) ] [,
STABLE | UNSTABLE ] [, PARALLEL [ (** *numthreads
***) ] ] [, ALGORITHM(**
*name ***) ] )**

recordset | The 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. |

numerator | The number of records to return. The chosen records are evenly spaced from throughout the recordset. |

denominator | Optional. The size of each set from which to return numerator number of records. If omitted, the denominator value is the total number of records in the recordset. |

which | Optional. 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. If the numerator is not 1, then some records may overlap. |

LOCAL | Optional. Specifies that the sample is extracted on each supercomputer node without regard to the number of records on other nodes, significantly improving performance if exact results are not required. |

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: | ENTH returns a set of records. |

The **ENTH **function returns a sample
set of records from the nominated *recordset*. ENTH
returns *numerator* number of records out of each
*denominator* set of records in the
*recordset*. Unless LOCAL is specified, records are
picked at exact intervals across all nodes of the supercomputer.

Example:

```
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});
Set1 := ENTH(SomeFile,2,10,1); // returns E, J, O, T, Y
// other examples
// MySample1 := ENTH(Person,1,10,1); // 10% (1 out of every 10)
// MySample2 := ENTH(Person,15,100,1); // 15% (15 out of every 100)
// MySample3 := ENTH(Person,3,4,1); // 75% (3 out of every 4)
```