> # Grand Aggregate C Sequence Functions

> All Grand Aggregate C functions take a single input sequence and produce a result sequence. The result of all Grand Aggregate functions is returned in the first element of the result sequence as a `double` value except for mco_seq_agg_count() which returns a `uint8` value and the two functions `mco_seq_agg_approxdc()` and `mco_seq_agg_approxdc_hash()` which return `uint4` values.

> The function signatures are of the following form:

>         MCO_RET mco_seq_agg_operation(mco_seq_iterator_h result,
>                 mco_seq_iterator_h input);

> or

>         MCO_RET mco_seq_agg_operation_TYPE(mco_seq_iterator_h result,
>                 mco_seq_iterator_h input);

> where TYPE is one of the types listed in the Analytics Functions page and operation is one of the following. Please use the links below to view descriptions and examples of the individual functions:

> mco_seq_agg_count() | Count of all elements
> mco_seq_agg_max_TYPE() | Maximum element value
> mco_seq_agg_min_TYPE() | Minimum element value
> mco_seq_agg_min_max_TYPE() | Both maximum and minimum element value
> mco_seq_agg_sum_TYPE() | Sum of all elements
> mco_seq_agg_prd_TYPE() | Product of all elements
> mco_seq_agg_avg_TYPE() | Average of all elements
> mco_seq_agg_var_TYPE() | Variance of elements
> mco_seq_agg_var_samp_TYPE() | Sample Variance of elements
> mco_seq_agg_dev_TYPE() | Standard Deviation of elements
> mco_seq_agg_dev_samp_TYPE() | Sample Standard Deviation of elements
> mco_seq_agg_approxdc() | Approximate count of distinct values
> mco_seq_agg_approxdc_hash() | Approximate count of distinct values for multiple sequences

> ## Example

> Following is an example code snippet demonstrating a grand aggregate function:

>         {
>             mco_trans_h trans;
>             mco_cursor_t quote_cursor;
>             Quote quote;
>             mco_seq_iterator_t close_iterator, max_iterator;
>             MCO_RET rc;
>             ...

>             for (rc = mco_cursor_first(trans, &quote_cursor);
>                 rc != MCO_S_CURSOR_END;
>                 rc = mco_cursor_next(trans, &quote_cursor))
>             {
>                 Quote_from_cursor(trans, &quote_cursor, &quote);
>                 Quote_close_iterator(&quote, &close_iterator);
>                 ...
>                 rc = mco_seq_agg_max_float(&max_iterator, &close_iterator);

>                 ...
>             }
>             ...
>         }