everythingOracle.bizhat.com

 

'Everything you wanted
to know about Oracle'

Training References Syntax Tell A Friend Contact Us

 

 

Manuscript: 09

 

 

Topics:  Hands-On 06

 

Data warehousing is a focus in your organization. Management needs more reports in order to truly understand their data. You have been assigned to write simple SQL statement using the “ROLLUP” operator to create salary subtotals for each type of job per year. Also, you should use the CUBE operator to enable a simple statement to calculate all possible combinations of the types of jobs and year for the research department only.

 

Notice: A select statement using the ROLLUP operator returns both ‘regular rows’ and ‘super-aggregate rows.’ Super-aggregate rows are rows that contain a sub-total value.

 

A select statement using the CUBE operator returns cross-tabulation values, thus produces totals in all possible dimensions, and is used for warehousing aggregated data reports.

 

   
   

Manuscript

-- Hands-On 06 (Data Warehousing - rollup and cube function) 

CLEAR SCR 
SET ECHO ON 
-- Connect to SQL*PLUS as the oracle user.
--
pause

CONNECT oracle/learning
pause

CLEAR SCR
-- Set the pagesize to 55 and the linesize to 100.
--
pause

SET PAGESIZE 55
SET LINESIZE 100
pause

CLEAR SCR
-- Alter the EMP table, and add a column
-- to store the year that employees were
-- hired.
-- 
pause

ALTER TABLE emp ADD (year VARCHAR2(2))
/
pause

CLEAR SCR
-- Set the column year heading.
--
pause

COLUMN year FORMAT a4 HEADING "Year"
pause

CLEAR SCR
-- Update the EMP table to set the year each employee
-- was hired, into the newly created YEAR column.
--
pause

UPDATE emp 
SET year = TO_CHAR(hiredate,'YY') 

commit;
pause

CLEAR SCR
-- Query an aggregation sum report for each job, 
-- in each year, using the ROLLUP grouping option.
pause

SELECT year, job, SUM(sal), COUNT(*) 
FROM emp 
GROUP BY ROLLUP (year, job)
/
-- This is an example of a GROUP BY ROLLUP option.
pause 

CLEAR SCR
-- Query an aggregation sum report for 
-- each job, in each year using the CUBE option group
-- for the research department only.
pause

SELECT year, job, SUM(sal), COUNT(*) 
FROM emp 
WHERE deptno = 20
GROUP BY CUBE (year, job)
/
-- This is an example of a GROUP BY CUBE option.
pause

CLEAR SCR
-- Drop the year column

pause

ALTER TABLE emp DROP (year)
/
-- You have dropped the year column so that you can
-- perform this excercise over and over again.
pause

CLEAR SCR
-- Now, practice this Hands-On over and over
-- until you become a master at it.

-- For more information about the subject, you are encouraged
-- to read from a wide selection of available books.

-- Good luck!
pause

 

     Reviews and Templates for FrontPage
     

Copyright © everythingOracle.bizhat.com 2006 All Rights Reserved.