g_first1(G;S;O)

Returns a boolean value indicating whether this is the first row in a given group.

Function type

Vector only

Syntax

g_first1(G;S;O)
t_first1()

Input

Argument Type Description
G any A space- or comma-separated list of column names

Rows are in the same group if their values for all of the columns listed in G are the same.

If G is omitted, all rows are considered to be in the same group.

If any of the columns listed in G contain N/A, the N/A value is considered a valid grouping value.

S integer The name of a column in which every row evaluates to a 1 or 0, which determines whether or not that row is selected to be included in the calculation

If S is omitted, all rows will be considered by the function (subject to any prior row selections).

If any of the values in S are neither 1 nor 0, an error is returned.

O integer A space- or comma-separated list of column names that determine the row order within a particular group

If O is omitted, the order is the current display order of the table.

If any of the values in O are N/A, an error is returned.

Return Value

For every row in each group defined by G and ordered by O (and for those rows where S=1, if specified), g_first1 returns an integer value of 1 if this is the first row in that group. Returns a 0 otherwise.

Sample Usage

<base table="pub.doc.samples.ref.func.g_func_time_series_sample_usage"/>
<willbe name="g_first1_1" value="g_first1(state;include;order)"/>
<willbe name="g_first1_2" value="g_first1(state city;include;order)"/>

Additional Information

  • The t_ version of this function defaults the G argument and omits the S argument. The default for G is set at table load time based on the organization of the table.

Example

This example uses the g_first1(G;S;O) function to return 1 or 0 depending on whether or not a transaction is the first one in its basket, which is represented by its transaction ID. This could be used to determine how many baskets are in a given transaction register. g_first1(G;S;O) can take three parameters, but in this case, only the first and last parameter are needed. The G parameter uses the transaction IDs (transid) to group, and the O parameter uses the dates (date) to order. g_first1(G;S;O) returns a 1 if the row is the first row with that transaction ID and a 0 if it is not.

<base table="pub.demo.retail.item"/>
<colord cols="transid,date,store,sales,is_first_id"/>
<willbe name="basket_marker" value="g_first1(transid;;date)" label="Basket"/>