Aggregates and functions for multilevel grouping
Vertica provides several aggregates and functions that group the results of a GROUP BY query at multiple levels.
Aggregates for multilevel grouping
Use the following aggregates for multilevel grouping:
-
ROLLUPautomatically performs subtotal aggregations. ROLLUP performs one or more aggregations across multiple dimensions, at different levels. -
CUBEperforms the aggregation for all permutations of the CUBE expression that you specify. -
GROUPING SETSlet you specify which groupings of aggregations you need.
You can use CUBE or ROLLUP expressions inside GROUPING SETS expressions. Otherwise, you cannot nest multilevel aggregate expressions.
Grouping functions
You use one of the following three grouping functions with ROLLUP, CUBE, and GROUPING SETS:
-
GROUP_ID returns one or more numbers, starting with zero (0), to uniquely identify duplicate sets.
-
GROUPING_ID produces a unique ID for each grouping combination.
-
GROUPING identifies for each grouping combination whether a column is a part of this grouping. This function also differentiates NULL values in the data from NULL grouping subtotals.
These functions are typically used with multilevel aggregates.