input('integers') 
-> select({value as integer}) as integer_input

/* basic grouping */
integer_input
-> group(
     select: {
       modulo(integer, 3) as modulo,
       to_list(integer) as integers
     },
     by: modulo(integer, 3) 
   ) as grouped_in_threes

/* a long chain terminated with a group */
integer_input
-> filter(modulo(integer, 2) = 0) as even_numbers 
-> select({[integer, 0 - integer] as pair}) as paired
-> unnest(pair) as unnested
-> group(
     select: {
       count(*)  as count, 
       sum(pair) as sum
     }
   ) as counts_and_sums_of_paired


/* a group, with another group and a select hanging off them */
integer_input
-> group(by: modulo(integer, 10), select: {sum(integer) as integer, count(*) as count}) as sum_of_modulo_tens
-> group(by: modulo(integer, 3), select: {sum(integer) as integer, sum(count) as count}) as sum_of_modulo_threes


