Está en la página 1de 10

11 de Octubre del 2021

Multiple-row functions: Trabaja con un grupo de registros sobre un función y al


final se entregará un solo resultado (120 registros = 1 resultado).
 Función AVG: Se encarga de sacar el promedio de un campo.
 Función COUNT: Se encarga de contar cuantos registros hay en un
campo.
 Función MAX: Se encarga de saber el valor máximo de un campo.
 Función MIN: Se encarga de saber el valor mínimo de un campo.
“Debo saber Cuál es el salario máximo de empleados, El salario mínimo, Cual es
el promedio de los salarios de los empleados, Cuanto voy a pagar de toda mi
nómina y Contar cuantos registros tengo en la tabla de empleados”.
Select max(salary), min(salary), avg(salary), sum(salary), count(employee_id)
From employees;

“Cuantos empleados cuentas con comisión ptc”.


Select count(commission_pct) from employees;

“Cuantos empleados hay”.


Select count(*) from employees;

“Cuantos empleados hay en cada uno de los departamentos”.


Select distinct(department_id) from employees;
“Cuantos departamentos distintos tengo dentro de la tabla de empleados”.
Select count(distinct(department_id)) from employees;

“Cuál es el promedio de los empleados que tengan comisión pct (Son solo 35
empleados)”.
Select avg(Commission_pct) from employees;

“Cuál es el promedio de los empleados que tengan o no comisión pct (Si no


tienen, cuenta como cero) (Son los 107 empleados)”.
Select avg(NVL(Commission_pct, 0)) from employees;

 Función STDDEV: Se encargar de sacar la desviación estándar de un


campo.
 Función SUM: Se encarga de sacar la sumatoria de un campo
 Función VARIANCE: Se encarga de sacar la varianza de un campo.
Group by: Sirve para agrupar en función a “algo” los elementos de una tabla,
agrupará en función a la columna que se tenga seleccionada. Ejemplo:
“Seleccionar el departamento y el salarios promedio de los empleados y que estén
agrupados por los departamentos”.
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id;
“Seleccionar el empleo, departamento y el salario promedio, agrupados por
departamento y por empleo”.
SELECT job_id, department_id, AVG(salary)
FROM employees
GROUP BY department_id, job_id;

“Seleccionar el departamento y el salario promedio de los empleados, grupado por


departamentos y ordenado por departamento”.
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
ORDER BY 1;
“Seleccionar el departamento, promedio de los empleados en números enteros,
agrupado y ordenado por departamento”.
SELECT department_id, round(AVG(salary))
FROM employees
GROUP BY department_id
ORDER BY department_id;

“Seleccionar los departamentos, contar los empleados de cada departamento, el


salario promedio de los empleados, agrupados y ordenados por departamento”.
SELECT department_id, count(employee_id), AVG(salary)
FROM employees
GROUP BY department_id
ORDER BY department_id;
“Se requiere un reporte de: departamentos, empleos de cada departamento y el
total de nómina de los empleados. Ordenados por departamento”.
SELECT department_id dept_id, job_id, SUM(salary)
FROM employees
GROUP BY department_id, job_id
ORDER BY Department_id;

“Se requiere un reporte de: departamentos, empleos de cada departamento, el


total de nómina de los empleados y cuantos empleados hay. Ordenados por
departamento”. (count(*) ó count(employee_id))
SELECT department_id dept_id, job_id, SUM(salary), count(*)
FROM employees
GROUP BY department_id, job_id
ORDER BY Department_id;
“Se requiere un reporte de: departamentos, empleos de cada departamento, el
salario promedio y cuantos empleados hay. Ordenados por departamento”.
(count(*) ó count(employee_id))
SELECT department_id dept_id, job_id, avg(salary), count(*)
FROM employees
GROUP BY department_id, job_id
ORDER BY Department_id;

Inicio de EJERCIOCIO TIPO EXAMEN:


“Se requiere un reporte donde me digan: ¿Cuáles localidades y cuantos
departamentos hay de cada localidad?”.
Select location_id, count(location_id)
From departments
Group by location_id;

Fin de EJERCIOCIO TIPO EXAMEN:


Having: Sirve como un “WHERE” pero para funciones de grupo donde debe tener
la condicion de grupo que se está dando. Ejemplo:
“Se requiere un reporte de: departamentos, empleos de cada departamento,
donde salario promedio sea MAYOR a 5,000 y cuantos empleados hay.
Ordenados por departamento”. (count(*) ó count(employee_id))
SELECT department_id dept_id, job_id, avg(salary), count(*)
FROM employees
HAVING avg(salary) > 5000
GROUP BY department_id, job_id
ORDER BY department_id;
“Se requiere un reporte de: departamentos, empleos de cada departamento,
donde salario promedio (preciso) sea MAYOR a 5,000 y cuantos empleados hay.
Ordenados por departamento”. (count(*) ó count(employee_id))
SELECT department_id dept_id, job_id, round(avg(salary), 0), count(*)
FROM employees
HAVING avg(salary) > 5000
GROUP BY department_id, job_id
ORDER BY department_id;
Usando un WHERE (condicion simple) y HAVING (condición de grupo):
“Se requiere un reporte de: departamentos, empleos de cada departamento,
donde los empleos sean MK_MAN, IT_PROG y AD_VP, y donde salario promedio
(preciso) sea MAYOR a 5,000 y cuantos empleados hay ahí. Ordenados por
departamento”. (count(*) ó count(employee_id))
SELECT department_id dept_id, job_id, round(avg(salary), 0), count(*)
FROM employees
WHERE job_id in(‘MK_MAN’, ‘IT_PROG’, ‘AD_VP’)
HAVING avg(salary) > 5000
GROUP BY department_id, job_id
ORDER BY Department_id;

“Se requiere un reporte de: departamentos, empleos de cada departamento donde


los empleos sean MK_MAN, IT_PROG y AD_VP, y cuantos empleados hay ahí.
Ordenados por departamento”. (count(*) ó count(employee_id))
SELECT department_id dept_id, job_id, round(avg(salary), 0), count(*)
FROM employees
HAVING job_id in(‘MK_MAN’, ‘IT_PROG’, ‘AD_VP’)
GROUP BY department_id, job_id
ORDER BY Department_id;

Nota: En este caso si es viable el uso del de HAVING para encontrar los empleos
específicos, esto es debido a que se está trabajando con un “conjunto” o con un
campo de grupo (dentro de GROUP BY) que en este caso es “job_id”.
“Se requiere un reporte de: departamentos, empleos de cada departamento,
donde los empleos sean SA_REP, IT_PROG y AD_VP, cuantos empleados hay
ahí y donde sean MAS de 10. Ordenados por departamento”.
SELECT department_id dept_id, job_id, round(avg(salary), 0), count(employee_id)
FROM employees
WHERE job_id IN(‘SA_REP’, ‘IT_PROG’, ‘AD_VP’)
HAVING count(*) > 10
GROUP BY department_id, job_id
ORDER BY Department_id;

“Se requiere un reporte de: departamentos, el salario máximo de los


departamentos donde sea MAYOR a 10,000. Ordenado por departamento.”
SELECT department_id, MAX(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary)>10000
ORDER BY department_id;

También podría gustarte