# Group Aggregate Python SequenceIterator Methods

> All Group Aggregate methods take an input group_by sequence argument and produce a result sequence containing the calculated aggregate for each group. The object's sequence is split into groups based on the values in the group_by sequence which is expected to be ordered.

> group_agg_count( group_by ) | Returns a sequence with the count of the number of elements in each group
> group_agg_max( group_by ) | Returns a sequence with the maximum value for each group of elements
> group_agg_min( group_by ) | Returns a sequence with the minimum value for each group of elements
> group_agg_first( group_by ) | Returns a sequence with the first element of each group
> group_agg_last( group_by ) | Returns a sequence with the last element of each group
> group_agg_sum( group_by ) | Returns a sequence with the sum of each group of elements
> group_agg_avg( group_by ) | Returns a sequence with the average of each group of elements
> group_agg_var( group_by ) | Returns a sequence with the variance of each group of elements
> group_agg_var_samp( group_by ) | Returns a sequence with the sample variance of each group of elements
> group_agg_dev( group_by ) | Returns a sequence with the Standard Deviation of each group of elements
> group_agg_dev_samp( group_by ) | Returns a sequence with the Sample Standard Deviation of each group of elements
> group_agg_approxdc( group_by ) | Returns a sequence with the approximate count of distinct values for each group
> group_agg_approxdc_hash( group_by ) | Returns a sequence with the approximate count of distinct values for each group for multiple sequences. Whereas `group_agg_approxdc()` returns the approximate distinct count for each group of a single sequence, `group_agg_approxdc_hash()` returns the approximate distinct count for multiple sequences.

> ## Example

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

>         cursor = con.cursor("Quote", "by_sym")
>         for quote in cursor:
>             dayit = quote.day.search(20130101, exdb.SeqIteratorBoundary.MCO_SEQ_BOUNDARY_INCLUSIVE,
>                 20140101, exdb.SeqIteratorBoundary.MCO_SEQ_BOUNDARY_EXCLUSIVE)
>             volit = dayit.project('volume')
>             # date is represetned as YYYYMMDD, so to group it by month we should divide date by 100
>             const_it = exdb.SequenceIterator.const(100, exdb.Database.MCO_DB_FT_SEQUENCE_UINT4)
>             month_it = dayit.div(const_it)
>             sum_it = volit.group_agg_sum(month_it)

>             ...