Rollup


BigQueryDb2 (LUW)MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite2005200720092011201320152017201920212023⊘ 3.5.7 - 3.50.0✓ 2008R2 - 2022a✓ 9.5 - 17⊘ 8.3 - 9.4✓ 11gR1 - 23.9✓ 8.3 - 9.3.0⚠ 5.0 - 8.2a⚠ 5.1 - 12.0.2a✓ 9.7 - 12.1.2a✓ 2.0
  1. Supports proprietary GROUP BY … WITH ROLLUP syntax

Group 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.

About the Author

Photo of Markus Winand

Markus Winand provides insights into SQL and shows how different systems support it at modern-sql.com. Previously he made use-the-index-luke.com, which is still actively maintained. Markus can be hired as trainer, speaker and consultant via winand.at.

Buy the Book

Cover of “SQL Performance Explained”: Squirrel running on grass

The essence of SQL tuning in 200 pages

Buy now!
(paperback and/or PDF)

Paperback also available at Amazon.com.

Hire Markus

Markus offers SQL training and consulting for developers working at companies of all sizes.
Learn more »

Footnotes

  1. ISO/IEC 9075-2:2023 §7.13 SR 13 (NOTE 265)

Connect with Markus Winand

Subscribe mailinglistsSubscribe the RSS feedMarkus Winand on LinkedInMarkus Winand on XINGMarkus Winand on TwitterMarkus Winand on Bluesky
Copyright 2015-2025 Markus Winand. All righs reserved.
Legal | Contact | NO WARRANTY | Trademarks | Privacy and GDPR