cube function performs increasing levels of cumulative subtotals, based on the provided column list. code example

Example 1: roll up oracle

-- In addition to the regular aggregation results we expect from the
-- GROUP BY clause, the ROLLUP extension produces group subtotals from 
-- right to left and a grand total. If "n" is the number of 
-- columns listed in the ROLLUP, there will be n+1 levels of subtotals.

SELECT fact_1_id,
       fact_2_id,
       fact_3_id,
       SUM(sales_value) AS sales_value
FROM   dimension_tab
GROUP BY ROLLUP (fact_1_id, fact_2_id, fact_3_id)
ORDER BY fact_1_id, fact_2_id, fact_3_id;

Example 2: cube oracle

-- the CUBE extension will generate subtotals for all combinations of the 
 -- dimensions specified. If "n" is the number of columns listed in the CUBE,
 -- there will be 2^n subtotal combinations.
 
 SELECT fact_1_id,
       fact_2_id,
       fact_3_id,
       SUM(sales_value) AS sales_value
FROM   dimension_tab
GROUP BY CUBE (fact_1_id, fact_2_id, fact_3_id)
ORDER BY fact_1_id, fact_2_id, fact_3_id;

Tags:

Sql Example