select department_name, jj, sum(salary) from (
select department_name,
regexp_replace(job_id, '^[[:alpha:]]{2}_', '') jj,
salary from employees e, departments d
where e.department_id = d.department_id
)
group by cube (department_name, jj)
SELECT grouping(DEPARTMENT_NAME),
DEPARTMENT_NAME,
grouping(COUNTRY_NAME),
COUNTRY_NAME,
(count(EMPLOYEES.EMPLOYEE_ID)) c
FROM DEPARTMENTS , LOCATIONS , COUNTRIES , EMPLOYEES
WHERE ( (LOCATIONS.LOCATION_ID = DEPARTMENTS.LOCATION_ID) AND
(COUNTRIES.COUNTRY_ID = LOCATIONS.COUNTRY_ID) AND
(DEPARTMENTS.DEPARTMENT_ID = EMPLOYEES.DEPARTMENT_ID) )
group by rollup (COUNTRIES.COUNTRY_NAME, DEPARTMENTS.DEPARTMENT_NAME, )
SELECT grouping(DEPARTMENT_NAME),
DEPARTMENT_NAME,
grouping(COUNTRY_NAME),
COUNTRY_NAME,
(count(EMPLOYEES.EMPLOYEE_ID)) c
FROM DEPARTMENTS , LOCATIONS , COUNTRIES , EMPLOYEES
WHERE ( (LOCATIONS.LOCATION_ID = DEPARTMENTS.LOCATION_ID) AND
(COUNTRIES.COUNTRY_ID = LOCATIONS.COUNTRY_ID) AND
(DEPARTMENTS.DEPARTMENT_ID = EMPLOYEES.DEPARTMENT_ID) )
group by cube (COUNTRIES.COUNTRY_NAME, DEPARTMENTS.DEPARTMENT_NAME )
minus
SELECT grouping(DEPARTMENT_NAME),
DEPARTMENT_NAME,
grouping(COUNTRY_NAME),
COUNTRY_NAME,
(count(EMPLOYEES.EMPLOYEE_ID)) c
FROM DEPARTMENTS , LOCATIONS , COUNTRIES , EMPLOYEES
WHERE ( (LOCATIONS.LOCATION_ID = DEPARTMENTS.LOCATION_ID) AND
(COUNTRIES.COUNTRY_ID = LOCATIONS.COUNTRY_ID) AND
(DEPARTMENTS.DEPARTMENT_ID = EMPLOYEES.DEPARTMENT_ID) )
group by rollup (COUNTRIES.COUNTRY_NAME, DEPARTMENTS.DEPARTMENT_NAME, )
SELECT nvl(departments.department_name, 'Summe Department') as dep,
grouping(department_name) as gd,
nvl(job_id, 'Summe Jobs') as job, grouping(job_id) as gj,
count(last_name), sum(employees.salary)
FROM departments, employees
WHERE ((departments.department_id = employees.department_id))
group by rollup (department_name, job_id)
order by department_name, job_id