GROUP BY … WITH ROLLUP
syntaxGroup by rollup (…)
with N column lists creates N+1 grouping sets by “dropping columns from the right, one by one”.0 The empty list ()
is the last element (thus N+1 grouping sets).
In other words, the following two group by
clauses are equivalent:
GROUP BY ROLLUP( a, b, c )
GROUP BY GROUPING SETS ( (a, b, c)
, (a, b )
, (a )
, ( )
)
Note that I wrote “column lists”. Similar to the grouping sets
specification, rollup
(and cube
) accept a list of column lists. The following rollup
specification has only one argument—a single column list consisting of two columns kept together by a pair of parenthesis.
GROUP BY ROLLUP ( (a, b) )
The equivalent grouping sets
specification has two elements (N+1): the column list from the rollup
specification and the empty grouping set.
GROUP BY GROUPING SETS ( (a, b)
, ( )
)
You can’t catch up on 20 years of SQL evolution in one day. Subscribe the newsletter via E-Mail, Bluesky or RSS to gradually catch up and to keep modern-sql.com on your radar.
The essence of SQL tuning in 200 pages
Buy now!
(paperback and/or PDF)
Paperback also available at Amazon.com.
Markus offers SQL training and consulting for developers working at companies of all sizes.
Learn more »
ISO/IEC 9075-2:2023 §7.13 SR 13 (NOTE 265)