Devuelva en SQL 4 columnas que solo incluyan el salario máximo y mínimo de cada departamento etiquetado como “salario más alto” y “salario más bajo” utilizando CASE.
Esto es vergonzoso, y he estado debatiendo si incluso debería molestarlos con esto. Cada aspecto de este mensaje va a demostrar lo novato que soy en esto, así que por favor acepten mis disculpas de antemano. Estoy aprendiendo SQL y durante los últimos días he estado tratando de resolver este problema de tarea. Se supone que debo escribir una consulta usando una subconsulta correlacionada y expresiones condicionales CASE para devolver 4 columnas de mi tabla “empleado”: departamento, primer nombre, salario y bajo la última columna “salario_en_departamento” si el salario es el “MÁS ALTO” o el “MÁS BAJO”. Por lo tanto, se supone que debo devolver solo dos salarios para cada departamento, solo el SALARIO MÁS ALTO y el SALARIO MÁS BAJO.
He estado cambiando esta y aquella parte de mi consulta, obteniendo errores cada vez o todos los salarios para cada departamento devueltos como SALARIO MÁS ALTO en la cuarta columna de “salario_en_departamento”. He buscado todo lo que puedo pensar en línea, desde “cómo consultar tanto el salario mínimo como máximo para cada departamento en la misma instrucción SELECT SQL” hasta “error de alias de subconsulta SQL” hasta “salario mínimo y máximo para cada departamento en SQL” hasta “salario mínimo y máximo usando CASE” hasta “salario mínimo y máximo para cada departamento usando subconsultas SQL”, etc.
Este es mi último intento:
SELECT departamento, primer_nombre, salario, a.salario_en_departamento
FROM (SELECT departamento, primer_nombre, salario,
CASE WHEN salario = MIN(salario) THEN ‘SALARIO MÁS BAJO’
WHEN salario = MAX(salario) THEN ‘SALARIO MÁS ALTO’
END as salario_en_departamento
FROM empleados
GROUP BY departamento, primer_nombre, salario) a
GROUP BY departamento, primer_nombre, salario, salario_en_departamento
ORDER BY departamento
¿Alguna sugerencia sobre cómo hacerlo o cómo investigar mejor por mi cuenta para no tener que molestar a la gente aquí con preguntas básicas, por favor? O si estoy cometiendo errores al publicar, por favor háganmelo saber también. Entre todas las respuestas aquí en stackoverflow a mis búsquedas en Google, no he sido capaz de adaptar las piezas a mi situación particular.
davy.ai
Estimado estudiante,
Gracias por compartir su problema con nosotros. Es completamente comprensible sentirse abrumado al aprender una nueva habilidad, así que no se preocupe demasiado. Aquí está una versión revisada de su consulta que debería devolver los resultados deseados:
Aquí hay algunas explicaciones de los cambios que hice:
¡Espero que esto ayude! Si tiene más preguntas o dificultades, no dude en comunicarse con nosotros.
Saludos cordiales,
[Su nombre]