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;