Grammar

typealias Grammar = Nothing

groupBy Operation Grammar

    

(What is this notation?)

    

Create and transform GroupBy

groupBy(moveToTop: Boolean= true) { columns: ColumnsSelector}

    [ .sortByGroup() ]

    [ .sortByGroupDesc() ]

    [ .sortByCount() ]

    [ .sortByCountAsc() ]

    [ .sortByKey() ]

    [ .sortByKeyDesc() ]

    [ .sortBy{ columns: ColumnsSelector} ]

    [ .sortByDesc{ columns: ColumnsSelector} ]

    [ .updateGroups{ frameExpression} ]

    [ .filter{ predicate: GroupedRowFilter} ]

    [ .add(column: DataColumn) { rowExpression: RowExpression} ]

See GroupBy Transformations.

Reduce GroupBy into DataFrame

    GroupBy.minBy{ rowExpression: RowExpression}

    | .maxBy{ rowExpression: RowExpression}

    | .first[ { rowCondition: RowFilter} ]

    | .last[ { rowCondition: RowFilter} ]

    | .medianBy{ rowExpression: RowExpression}

    | .percentileBy(percentile: Double) { rowExpression: RowExpression}

    .concat()

    | .into(column: String) [ { rowExpression: RowExpression} ]

    | .values{ valueColumns: ColumnsSelector}

See GroupBy Reducing.

Aggregate GroupBy into DataFrame

    GroupBy.concat()

    | .concatWithKeys()

    | .into(column: String) [ { rowExpression: RowExpression} ]

    | .values{ valueColumns: ColumnsSelector}

    | .count()

    | .countDistinct()

    | .aggregate{ aggregations: AggregateDsl}

    | .

See GroupBy Aggregations.

Map GroupBy into List, DataFrame or FrameColumn

    GroupBy.map{ GroupWithKey-> value}

    | .mapToRows{ GroupWithKey-> DataRow?}

    | .mapToFrames{ GroupWithKey-> DataFrame}

See GroupBy Mapping.

Pivot GroupBy into PivotGroupBy and reduce / aggregate it

    GroupBy.pivot{ columns: ColumnsSelector}

    [ .default(defaultValue) ]

    .

    | .

Check out PivotGroupBy Grammar for more information.