Я обнаружил, что в MSSQL существует как
SELECT <list of columns>, sum(measure) as measure
FROM fact-table
GROUP BY <list of columns> WITH CUBE
а также
SELECT <list of columns>, sum(measure) as measure
FROM fact-table
GROUP BY CUBE (<list of columns>)
Я блуждал, в чем разница, потому что, используя их, я получаю одинаковые результаты с обоими синтаксисами.
Также я помню, что, по крайней мере, для версии 2008, WITH CUBE поддерживался экспресс-выпуском, а ROLLUP (), CUBE () и GROUPING SETS () были особенностями «выпусков Enterprise».


Я считаю, что ключевое слово С УЧАСТИЕМ необязательно во всех контекстах, кроме запуска объявления CTE, в этом случае - оба делают одно и то же
Разница указана в документация:
Syntax for SQL Server and Azure SQL Database
ISO-Compliant SyntaxGROUP BY { column-expression | ROLLUP ( <group_by_expression> [ ,...n ] ) | CUBE ( <group_by_expression> [ ,...n ] ) | GROUPING SETS ( <grouping_set> [ ,...n ] ) | () --calculates the grand total } [ ,...n ]
For backward compatibility only.
Non-ISO-Compliant Syntax for SQL Server and Azure SQL DatabaseGROUP BY [ ALL ] column-expression [ ,...n ] | column-expression [ ,...n ] [ WITH { CUBE | ROLLUP } ]
а также:
Feature SQL Server SQL Server SQL Server 2008 or later
Integration Services compatibility level 100 with compatibility level 90
or higher
CUBE Not supported Supported Not supported
WITH CUBE Supported Supported Supported
Не думаю, что есть разница. Честно говоря, я обычно использую
grouping sets, поэтому итоговые размеры указаны явно.