You are on page 1of 10

II73 – Sistemas de Información Inteligentes

Práctica 2
Funciones Analíticas de SQL:
Extensiones al group by

Práctica 2: Extensiones al group by

Contenidos

 

    group by

 
  
    
        select

2 II73 – Sistemas de Información Inteligentes


Práctica 2: Extensiones al group by


 

select gender, department, sum(wages)


from department join employee on department = fk_department
group by gender, department
order by 1,2;

G DEPA SUM(WAGES)
- ---- ----------
F POL 9800
F WEL 7000
M INT 65000
M POL 77900
M WEL 45000

3 II73 – Sistemas de Información Inteligentes

Práctica 2: Extensiones al group by

                      

   
  

      

Texas
varones
ventas

state

Orlando
mujeres
informática

gender

department

4 II73 – Sistemas de Información Inteligentes


Práctica 2: Extensiones al group by


 !  "  #  "  #  "  # $ $ $ %

select gender, department, sum(wages)


from department join employee on department = fk_department
group by rollup(gender, department)
order by 1,2;

G DEPA SUM(WAGES)
- ---- ----------
F POL 9800
F WEL 7000
F 16800
M INT 65000
M POL 77900
M WEL 45000
M 187900
204700

5 II73 – Sistemas de Información Inteligentes

Práctica 2: Extensiones al group by


 !  "  #  "  #  "  # $ $ $ %

select department, gender, sum(wages)


from department join employee on department = fk_department
group by rollup(department, gender)
order by 1,2;

DEPA G SUM(WAGES)
---- - ----------
INT M 65000
INT 65000
POL F 9800
POL M 77900
POL 87700
WEL F 7000
WEL M 45000
WEL 52000
204700

6 II73 – Sistemas de Información Inteligentes


Práctica 2: Extensiones al group by


 !  "  #  "  #  "  # $ $ $ %

select gender, department, state, sum(wages)


from department join employee on department = fk_department
group by rollup(department, gender, state)
order by 1,2,3;

7 II73 – Sistemas de Información Inteligentes

Práctica 2: Extensiones al group by


 !  "  #  "  #  "  # $ $ $ %
select gender, department, state, sum(wages)
from department join employee on department = fk_department
group by rollup(department, gender, state)
order by 1,2,3;
G DEPA ST SUM(WAGES) G DEPA ST SUM(WAGES)
- ---- -- ---------- - ---- -- ----------
F POL MO 9800 M POL NC 7500
F POL 9800 M POL TX 12000
F WEL MA 7000 M POL 77900
F WEL 7000 M POL VA 9000
F WEL NY M POL NY 10400
M INT ME 14000 M POL CA 12500
M INT MO 11000 M WEL GE 13000
M INT NE 22500 M WEL IA 10000
M INT NY 8000 M WEL IL 13500
M INT TX M WEL 45000
M INT VT 9500 M WEL OH 8500
M INT 65000 INT 65000
M POL AR 15000 POL 87700
M POL MA 11500 WEL 52000
204700

8 II73 – Sistemas de Información Inteligentes


Práctica 2: Extensiones al group by


 !  "  #  "  #  "  # $ $ $ %

select department, gender, state, sum(wages)


from department join employee on department = fk_department
group by department, rollup(gender, state)
order by 1,2,3;

9 II73 – Sistemas de Información Inteligentes

Práctica 2: Extensiones al group by


 !  "  #  "  #  "  # $ $ $ %
select department, gender, state, sum(wages)
from department join employee on department = fk_department
group by department, rollup(gender, state)
order by 1,2,3;
DEPA G ST SUM(WAGES) DEPA G ST SUM(WAGES)
---- - -- ---------- ---- - -- ----------
INT M ME 14000 POL M NY 10400
INT M MO 11000 POL M TX 12000
INT M NE 22500 POL M VA 9000
INT M NY 8000 POL M 77900
INT M TX POL 87700
INT M VT 9500 WEL F MA 7000
INT M 65000 WEL F NY
INT 65000 WEL F 7000
POL F MO 9800 WEL M GE 13000
POL F 9800 WEL M IA 10000
POL M AR 15000 WEL M IL 13500
POL M CA 12500 WEL M OH 8500
POL M MA 11500 WEL M 45000
POL M NC 7500 WEL 52000

10 II73 – Sistemas de Información Inteligentes


Práctica 2: Extensiones al group by

   !  "  #  "  #  "  # $ $ $ %

select gender, department, state, sum(wages)


from department join employee on department = fk_department
group by cube(department, gender, state)
order by 1,2,3;

11 II73 – Sistemas de Información Inteligentes

Práctica 2: Extensiones al group by

   !  "  #  "  #  "  # $ $ $ %


G DEPA ST SUM(WAGES) G DEPA ST SUM(WAGES)
- ---- -- ---------- - ---- -- ----------
F POL MO 9800 M AR 15000
F POL 9800 M CA 12500
F WEL MA 7000 ...
F WEL NY M VT 9500
F WEL 7000 M 187900
F MA 7000 INT ME 14000
F MO 9800 ...
F NY INT VT 9500
F 16800 INT 65000
M INT ME 14000 POL AR 15000
M INT TX ...
... POL VA 9000
M INT VT 9500 POL 87700
M INT 65000 WEL GE 13000
M POL AR 15000 ...
... WEL OH 8500
M POL VA 9000 WEL 52000
M POL 77900 AR 15000
M WEL GE 13000 CA 12500
... ...
M WEL OH 8500 VT 9500
M WEL 45000 204700

12 II73 – Sistemas de Información Inteligentes


Práctica 2: Extensiones al group by

   !  "  #  "  #  "  # $ $ $ %


select gender, department, state, sum(wages)
from department join employee on department = fk_department
group by cube(department, gender, state)
having sum(wages) < 10000
order by 1,2,3;
G DEPA ST SUM(WAGES) G DEPA ST SUM(WAGES)
- ---- -- ---------- - ---- -- ----------
F POL MO 9800 INT NY 8000
F POL 9800 INT VT 9500
F WEL MA 7000 POL MO 9800
F WEL 7000 POL NC 7500
F MA 7000 POL VA 9000
F MO 9800 WEL MA 7000
M INT NY 8000 WEL OH 8500
M INT VT 9500 NC 7500
M POL NC 7500 OH 8500
M POL VA 9000 VA 9000
M WEL OH 8500 VT 9500
M NC 7500
M OH 8500
M VA 9000
M VT 9500

13 II73 – Sistemas de Información Inteligentes

Práctica 2: Extensiones al group by

   !  "  #  "  #  "  # $ $ $ %

select gender, department, state, sum(wages)


from department join employee on department = fk_department
group by gender, cube(department,state)
order by 1,2,3;

14 II73 – Sistemas de Información Inteligentes


Práctica 2: Extensiones al group by

   !  "  #  "  #  "  # $ $ $ %


select gender, department, state, sum(wages)
from department join employee on department = fk_department
group by gender, cube(department,state)
order by 1,2,3;

G DEPA ST SUM(WAGES) G DEPA ST SUM(WAGES)


- ---- -- ---------- - ---- -- ----------
F POL MO 9800 M POL VA 9000
F POL 9800 ...
F WEL NY M POL AR 15000
F WEL MA 7000 M POL 77900
F WEL 7000 M WEL OH 8500
F MA 7000 ...
F MO 9800 M WEL GE 13000
F NY M WEL 45000
F 16800 M AR 15000
M INT ME 14000 ...
... M VT 9500
M 187900
M INT MO 11000
M INT 65000

15 II73 – Sistemas de Información Inteligentes

Práctica 2: Extensiones al group by


   !  "  %     & ' 

select
gender, department, sum(wages),
grouping(gender) as gdr,
grouping(department) as dept
from department join employee on department = fk_department
group by cube(gender, department)
order by 1,2;

grouping(exp)
exp

16 II73 – Sistemas de Información Inteligentes


Práctica 2: Extensiones al group by


   !  "  %     & ' 

G DEPA SUM(WAGES) GDR DEPT


- ---- ---------- ---------- ----------
F POL 9800 0 0
F WEL 7000 0 0
F 16800 0 1
M INT 65000 0 0
M POL 77900 0 0
M WEL 45000 0 0
M 187900 0 1
INT 65000 1 0
POL 87700 1 0
WEL 52000 1 0
204700 1 1

17 II73 – Sistemas de Información Inteligentes

Práctica 2: Extensiones al group by


   !  "  %     & '      

SEXO DEPARTAMENTO SUMA_SUELDOS


--------------- -------------- ------------
F WEL 7000
F POL 9800
F Total por sexo 16800
M WEL 45000
M INT 65000
M POL 77900
M Total por sexo 187900
Sueldos totales 204700

18 II73 – Sistemas de Información Inteligentes


Práctica 2: Extensiones al group by


   !  "  %     & '      

select
case when (grouping(department)= 1 and grouping(gender)= 1)
then 'Sueldos totales'
else gender end sexo,
case when (grouping(department)= 1 and grouping(gender)= 0)
then 'Total por sexo'
else department end departamento,
sum(wages) suma_sueldos
from department join employee on department = fk_department
group by rollup(gender, department);

19 II73 – Sistemas de Información Inteligentes

You might also like