INTRODUCCION
Los resúmenes de datos permiten tener información que ayudan a los gerentes y directivos de las empresas a tomar decisiones.
En este artículo tienes una serie de ejercicios que te permitirán desarrollar las habilidades necesarias para aplicar correctamente
las cláusulas GROUP BY y HAVING para obtener resúmenes de datos simples y complejos sobre diferentes esquemas de una base de datos ORACLE.
Si no tienes el esuema HR puedes trabajar las consultas con el esquema RECURSOS.
00.- ESQUEMAS EJEMPLO
El script para crear los esquemas lo encuentras en el siguiente repositorio:
01.- FUNCIONES AGREGADAS
- Desarrolle una sentencia SELECT para calcular el importe de la planilla del departamento de ventas. Debe incluir el sueldo y la comisión. Esquemas SCOTT y HR.
- Desarrolle una sentencia SELECT para encontrar el mayor y menor sueldo en el departamento de ventas. Esquema EDUCA.
- Desarrolle una sentencia SELECT para encontrar el salario promedio en la empresa. Esquema EDUCA.
- Se necesita saber la cantidad de empleados que hay en el departamento de ventas. Esquemas SCOTT y HR.
- Se necesita saber el importe de la planilla del departamento de ventas, con comisión y sin comisión. Esquemas SCOTT y HR.
- Del curso SQL Server Administración se necesita saber la cantidad de alumnos matriculados y a cuánto asciende el importe que se proyecta recaudar hasta el momento. Esquema EDUCA.
- Se necesita saber cuál es el importe recaudado hasta el momento del curso SQL Server Administración. Esquema EDUCA.
02.- AGRUPACIÓN DE DATOS: GROUP BY
- Desarrolle una sentencia SELECT para encontrar el sueldo promedio por departamento. Esquemas SCOTT y HR.
- Desarrolle una sentencia SELECT para encontrar el importe recaudado por curso. Esquema EDUCA.
- Se necesita saber el sueldo máximo, sueldo mínimo y el sueldo promedio por departamento. Esquemas SCOTT y HR.
- Se necesita saber cuántos empleados hay por departamento. Esquemas SCOTT y HR.
- Se necesita saber cuántos empleados han ingreso por año en cada departamento. Esquemas SCOTT y HR.
- De cada departamento se necesita saber la cantidad de empleados, el importe de la planilla y el sueldo promedio. Esquemas SCOTT y HR.
- De cada curso se necesita saber la cantidad de alumnos matriculados, el importe que se tiene proyectado recaudar y el importe recaudado por los alumnos matriculados. Esquema EDUCA.
- De cada departamento se requiere saber quién es el empleado que tiene el mayor salario. Esquemas SCOTT y HR.
- De cada sucursal, se necesita saber el saldo por cada tipo de moneda. Esquema EUREKA.
03.- FILTRO DE GRUPOS: HAVING
- Desarrolle una sentencia SELECT para encontrar los departamentos que tienen a lo más 3 trabajadores. Esquema HR.
- Se necesita saber cuáles son los puestos de trabajo que tienen más de 2 empleados. Esquemas SCOTT y HR.
- Se necesita saber cuáles son los departamentos que tienen más de 10 empleados. Esquemas SCOTT y HR.
- Se necesita saber los puestos de trabajo de los que solo hay un empleado en la empresa. Esquemas SCOTT y HR.
- Se necesita saber que empleados han registrado menos de 5 movimientos. Esquema EUREKA.
CODIGO FUENTE - EUREKA-WEB-MYSQL-SPRING
En esta sección te presento un video de una aplicación web desarrollada SPRING FRAMEWORK y MYSQL.
Tú tienes acceso al código fuente de esta aplicación, después del video tienes el enlace.
-- GROUP BY - HAVING
ResponderEliminar-- EJERCICIO 1
select department_id, round(avg(salary),0)
from employees
where department_id is not null
group by department_id
order by department_id;
-- EJERCICIO 3
select department_id, max(salary), min(salary), round(avg(salary),0)
from employees
where department_id is not null
group by department_id
order by department_id;
-- EJERCICIO 4
select department_id, count(employee_id)
from employees
where department_id is not null
group by department_id
order by department_id;
--EJERCICIO 5
select
to_char(hire_date,'YYYY') "AÑO",
department_id "DEPARTAMENTO",
count(1) "EMPLEADOS"
from HR.employees
WHERE department_id IS NOT NULL
GROUP BY to_char(hire_date,'YYYY'), department_id
ORDER BY 1,2;
--EJERCICIO 6
select
department_id,
count(employee_id) empleados,
sum(salary) planilla,
round(avg(salary),0) salario_prom
from employees
where department_id is not null
group by department_id
order by department_id;