ORACLE SQL GROUP BY Y HAVING

Práctica de Oracle SQL
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
  1. 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.
  2. Desarrolle una sentencia SELECT para encontrar el mayor y menor sueldo en el departamento de ventas. Esquema EDUCA.
  3. Desarrolle una sentencia SELECT para encontrar el salario promedio en la empresa. Esquema EDUCA.
  4. Se necesita saber la cantidad de empleados que hay en el departamento de ventas. Esquemas SCOTT y HR.
  5. Se necesita saber el importe de la planilla del departamento de ventas, con comisión y sin comisión. Esquemas SCOTT y HR.
  6. 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.
  7. 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
  1. Desarrolle una sentencia SELECT para encontrar el sueldo promedio por departamento. Esquemas SCOTT y HR.
  2. Desarrolle una sentencia SELECT para encontrar el importe recaudado por curso. Esquema EDUCA.
  3. Se necesita saber el sueldo máximo, sueldo mínimo y el sueldo promedio por departamento. Esquemas SCOTT y HR.
  4. Se necesita saber cuántos empleados hay por departamento. Esquemas SCOTT y HR.
  5. Se necesita saber cuántos empleados han ingreso por año en cada departamento. Esquemas SCOTT y HR.
  6. De cada departamento se necesita saber la cantidad de empleados, el importe de la planilla y el sueldo promedio. Esquemas SCOTT y HR.
  7. 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.
  8. De cada departamento se requiere saber quién es el empleado que tiene el mayor salario. Esquemas SCOTT y HR.
  9. De cada sucursal, se necesita saber el saldo por cada tipo de moneda. Esquema EUREKA.
03.- FILTRO DE GRUPOS: HAVING
  1. Desarrolle una sentencia SELECT para encontrar los departamentos que tienen a lo más 3 trabajadores. Esquema HR.
  2. Se necesita saber cuáles son los puestos de trabajo que tienen más de 2 empleados. Esquemas SCOTT y HR.
  3. Se necesita saber cuáles son los departamentos que tienen más de 10 empleados. Esquemas SCOTT y HR.
  4. Se necesita saber los puestos de trabajo de los que solo hay un empleado en la empresa. Esquemas SCOTT y HR.
  5. 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.



1 comentario:

  1. -- GROUP BY - HAVING

    -- 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;

    ResponderEliminar