Logo Studenta

Ejercicios SQL 4 (LOPEZ QUESADA CARLOS EMMANUEL)

¡Estudia con miles de materiales!

Vista previa del material en texto

EJERCICIOS DE SQL
4 
I S C 4 A V
 
 
Lopez Quesada Carlos Emmanuel
(2101092)
 
4 de Mayo del 2023
Ingenieria de Sistemas
 Computacionales
Profesor:
 FRANCISCO RODRRIGUEZ DIAZ 
Fundamentos de Base de Datos 
 
Ejercicios 4 
 
1. Encuentre el salario promedio, la bonificación y la comisión de todos los empleados asignados a 
un departamento de trabajo. 
SELECT WORKDEPT, AVG(SALARY) AS PROMEDIO_SALARIO, AVG(BONUS) AS 
PROMEDIO_BONIFICACION, AVG(COMM) AS PROMEDIO_COMISION FROM EMPLOYEE GROUP BY 
WORKDEPT; 
 
2. Ahora encuentre todos los empleados asignados a un departamento de trabajo, que tienen un 
salario mayor que el salario promedio calculado en la pregunta #1. Mostrar número de empleado, 
nombre y apellido, y salario. Devuelve las filas de resultados en secuencia de salario descendente. 
SELECT EMPNO, FIRSTNAME, LASTNAME, SALARY FROM EMPLOYEE WHERE SALARY > (SELECT 
AVG(SALARY) FROM EMPLOYEE) ORDER BY SALARY DESC; 
 
3. Modifique su solución a la pregunta #2. Encuentre todos los empleados con un salario superior 
al promedio salario de todos en su mismo departamento de trabajo. 
SELECT e.EMPNO, e.FIRSTNAME, e.LASTNAME, e.SALARY FROM EMPLOYEE e INNER JOIN ( SELECT 
WORKDEPT, AVG(SALARY) AS PROMEDIO_SALARIO FROM EMPLOYEE GROUP BY WORKDEPT) 
avg_sal ON e.WORKDEPT = avg_sal.WORKDEPT WHERE e.SALARY > avg_sal.PROMEDIO_SALARIO 
ORDER BY e.SALARY DESC; 
 
4. Verifique su solución a la pregunta # 3. Eliminar el nombre del conjunto de resultados. Agregar 
departamento de trabajo y salario promedio departamental, redondeado y cambiado a 
DECIMAL(9,2). Código al menos dos soluciones, una que involucre dos selecciones completas 
escalares y otra que involucre una unión a un expresión de tabla anidada. 
SELECT e.EMPNO, e.FIRSTNAME, e.LASTNAME, e.SALARY, e.WORKDEPT, 
ROUND(avg_sal.PROMEDIO_SALARIO, 2) AS PROMEDIO_SALARIO_DEPT FROM EMPLOYEE e INNER 
JOIN ( SELECT WORKDEPT, AVG(SALARY) AS PROMEDIO_SALARIO FROM EMPLOYEE GROUP BY 
WORKDEPT) avg_sal ON e.WORKDEPT = avg_sal.WORKDEPT WHERE e.SALARY > 
avg_sal.PROMEDIO_SALARIO ORDER BY e.SALARY DESC; 
 
 
5. Las siguientes tres declaraciones SELECT devuelven tres resultados diferentes. El primero. 
regresa información a nivel de detalle, el segundo devuelve subtotales por departamento y el 
tercero devuelve una fila de gran total. Combina estos tres resultados en uno solo. Sugerencia: los 
conjuntos de resultados debe hacerse compatible: el mismo número de columnas, con posición 
compatible tipos de datos. 
 
6. Del resultado anterior tomar en cuenta la secuencia de las filas de resultados también como los 
valores nulos en las filas de subtotal y total general. Asegúrese de que la columna SALARIO esté 
definido como DECIMAL(11,2).

Continuar navegando