funciones de agregacion

19

Click here to load reader

Upload: alexander-calderon

Post on 22-Jan-2018

128 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Funciones de Agregacion

SQL FUNDAMENTALS I

Funciones de

Agrupación

Page 2: Funciones de Agregacion

Una funcion de agregacion se ejecuta una

vez por cada grupo de filas, y devuelve un

solo valor

Page 3: Funciones de Agregacion

Count(*)

Devuelve el conteo de todas las filas del grupo,

incluyendo valores nulos y duplicados.

Count(distinct expresion)

Devuelve el conteo total de la expresion, elimina

los valores duplicados.

Count(ALL expr), count(expr)

Es el valor por defecto, son equivalentes, cuenta

el numero de tuplas en expresion, omite valores

nulos.

Page 4: Funciones de Agregacion

Avg(distinct expr)

Calcula el promedio de expr, omite valores

repetidos y nulos

Avg(all expr), avg(expr)

Realizan el calculo del promedio contando

valores nulos y repetidos.

Expresion debe ser de tipo NUMBER

Page 5: Funciones de Agregacion

MAX(expr)

Devuelve el valor maximo

MIN(expr)

Devuelve el valor minimo

VARIANCE

Calcula la funcion estadistica de la varianza

STDDEV

Calcula la desviacion estandard

Page 6: Funciones de Agregacion

Select count(*) from employees;

Select count(commission_pct) from

employees;

Select count(distinct commission_pct) from

employees;

Select count(hire_date), count(manager_id)

from employees;

Page 7: Funciones de Agregacion

Select sum(2) from employees;

Select sum(salary) from employees;

Select sum(distinct salary) from employees;

Select sum(commission_pct) from

employees;

Page 8: Funciones de Agregacion

Select avg(2) from employees;

Select avg(salary) from employees;

Select avg(distinct salary) from employees;

Select avg(commission_pct) from employees;

Page 9: Funciones de Agregacion

Funciona para tipos number, date y char

Select min(commission_pct),

max(commision_pct) from employees;

Select min(start_date), max(end_date) from

job_history;

Select min(job_id), max(job_id) from

employees;

Page 10: Funciones de Agregacion

Las funciones de tupla pueden anidarse casi

de forma infinita.

Las funciones de agrupacion, solo pueden

tener dos niveles de profundidad o

anidamiento.

G1(item_agrupado) = ok

G1(G2(item_agrupado))=ok

G1(G2(G3(item_agrupado))) = ERROR

Page 11: Funciones de Agregacion

La agrupacion de datos, es creada por

asociaciones entre las tuplas, con

propiedades que tienen en comun.

SELECT colum1, colum2 …

FROM tabla

WHERE condicion

GROUP BY colum1, colum2 …

ORDER BY colum1, colum2 …

Page 12: Funciones de Agregacion

Select max(salary) as salariomayor, count(*)

as conteo from employees;

Select max(salary) as salariomayor, count(*)

as conteo from employees GROUP BY

department_id order by department_id;

Page 13: Funciones de Agregacion

Select department_id, sum(commission_pct)

from employees where commission_pct is not

null group by department_id;

Select department_id, job_id, sum(

commission_pct) from employees where

commission_pct is not null group by

department_id, job_id;

Page 14: Funciones de Agregacion

Se requiere un reporte de renuncias o

cambios de cada puesto, la consulta debe

mostrar los años en los cuales los empleados

han renunciado, el puesto de renuncia, y la

cantidad de empleados que renunciaron.

Page 15: Funciones de Agregacion

La clausula having permite restringir

resultados del nivel de agrupacion.

Select department_id from job_history

where department_id in (50,60,80,110);

Page 16: Funciones de Agregacion

Select department_id, count(*) from

job_history where department_id in

(50,60,80,110) group by department_id;

Suponga que quiere mostrar solo los

departamentos que tengan mas de 1

empleado, como lo realizaria

Page 17: Funciones de Agregacion

Having solo puede ser especificada si GROUP

BY esta presente, y realiza un filtrado a nivel

de agrupacion.

Select department_id, count(*) from

job_history where department_id in

(50,60,80,110) group by department_id

HAVING count(*) >1;

Page 18: Funciones de Agregacion

El departamento de recursos humanos quiere

saber en que día se despide mas empleados,

para ello le solicitan a ud que muestre una

consulta en los que cite el día de la semana,

y la cantidad de empleados despedidos, solo

incluira aquellos dias en los se haya

despedido a mas de 15 empleados.

Page 19: Funciones de Agregacion

Todo el mundo desea saber, pero nadie

quiere pagar el precio.

Juvenal