GROUPBY: Single pass aggregation by columns.
AGG.T_IG: case 0
Count NA rows, but discard values in sums, mins, maxs
FIRST/LAST return the first nonNA first/last, or NA if all NA
AGG.T_RM: case 1
Count NA rows separately, discard values in sums, mins, maxs and compute aggregates less NA row counts
FIRST/LAST treated as above
AGG.T_ALL: case 2
Include NA in all aggregates -- any NA encountered forces aggregate to be NA.
FIRST/LAST return first/last row regardless of NAs.
Aggregations on time and numeric columns only.