SQL Hierarchical SQL & CUBE Clause
SQL Hierarchical SQL & CUBE Clause
101/b10759/statements_100
02.htm#i2066378
Without the GROUPING SETS syntax, you would have to write less efficient queries with
more complicated SQL. For example, you could run three separate queries
and UNION them, or run a query with aCUBE(channel_desc, calendar_month_desc,
country_id) operation and filter out five of the eight groups it would generate.
SELECT channel_desc, calendar_month_desc, co.country_id,
TO_CHAR(sum(amount_sold) , '9,999,999,999') SALES$
FROM sales, customers, times, channels, countries co
WHERE sales.time_id=times.time_id
AND sales.cust_id=customers.cust_id
AND sales.channel_id= channels.channel_id
AND customers.country_id = co.country_id
AND channels.channel_desc IN ('Direct Sales', 'Internet')
AND times.calendar_month_desc IN ('2000-09', '2000-10')
AND co.country_id IN ('UK', 'US')
GROUP BY GROUPING SETS(
(channel_desc, calendar_month_desc, co.country_id),
(channel_desc, co.country_id),
( calendar_month_desc, co.country_id) );