Respuesta SQL exacta

Ordenar empleados por departamento y salario

Para ordenar primero por departamento en orden alfabético y, dentro de cada departamento, por salario de mayor a menor, usá dos criterios en ORDER BY.

SELECT nombre, departamento, salario
FROM empleados
ORDER BY departamento ASC, salario DESC;

Resultado esperado

nombredepartamentosalario
BrunoDatos2300
DiegoDatos1900
ElenaMarketing2100
CarlaVentas2200
AnaVentas1800

Regla 1

departamento ASC va primero porque define el grupo principal de orden.

Regla 2

salario DESC va segundo porque solo ordena dentro de cada departamento.

Regla 3

Si dos salarios empatan, agregá nombre ASC como tercer criterio estable.

Ordenar empleados por departamento y salario SQL

Lectura
18 min~9 min lectura
Objetivo de la lección

En esta lección aprenderás a organizar los resultados de tus consultas SQL utilizando la cláusula ORDER BY .

Puntos de control
  • Pregunta exacta: ordenar empleados por departamento y salario
  • Checklist para no fallar ORDER BY con dos criterios
  • 🎯 Sintaxis básica de ORDER BY
  • 📚 Ejemplo práctico: La tabla "empleados"

En esta lección aprenderás a organizar los resultados de tus consultas SQL utilizando la cláusula ORDER BY. Esta es una de las herramientas más utilizadas en SQL para presentar datos de forma ordenada y comprensible.

Respuesta rápida para entrevista SQL: Para ordenar una tabla de empleados primero por departamento en orden alfabético y, dentro de cada departamento, por salario de mayor a menor, usá ORDER BY departamento ASC, salario DESC;.
SELECT nombre, departamento, salario
FROM empleados
ORDER BY departamento ASC, salario DESC;

Pregunta exacta: ordenar empleados por departamento y salario

Si la pregunta es ¿cómo puede ordenar una tabla de empleados primero por "departamento" en orden alfabético y, dentro de cada departamento, por "salario" de mayor a menor?, la respuesta corta es ordenar por dos columnas en el mismo ORDER BY:

SELECT nombre, departamento, salario
FROM empleados
ORDER BY departamento ASC, salario DESC;

El primer criterio agrupa visualmente los empleados por departamento de A a Z. El segundo criterio ordena los salarios de mayor a menor dentro de cada departamento, sin mezclar departamentos distintos.

CONCEPTO CLAVE
La cláusula ORDER BY se utiliza al final de una sentencia SELECT para ordenar los resultados según una o más columnas. Por defecto, ordena en forma ascendente (A-Z, 0-9), pero puedes especificar orden descendente (Z-A, 9-0) si lo necesitas.

Checklist para no fallar ORDER BY con dos criterios

  • Primero va la columna principal: departamento ASC.
  • Después va el desempate: salario DESC.
  • Cada columna puede tener su propia dirección: no hace falta que ambas sean ASC o ambas DESC.
  • El orden de las columnas cambia el resultado: ORDER BY salario DESC, departamento ASC respondería otra pregunta.
  • Usá nombres reales de columnas: si tu tabla usa area o sueldo, cambiá los campos pero mantené la lógica.

Esta lógica aparece en reportes de recursos humanos, análisis de nómina, dashboards operativos y pruebas técnicas para roles de datos. Si querés convertirlo en evidencia laboral, conectalo con la ruta de Analista de Datos, revisá rutas de empleo y ofrecé servicios de limpieza o consultas SQL desde el marketplace de profesionales.

🎯 Sintaxis básica de ORDER BY

La sintaxis fundamental es sencilla y siempre se coloca al final de tu consulta SELECT:

SELECT columna1, columna2
FROM nombre_tabla
ORDER BY columna1 [ASC|DESC];

Donde:

  • columna1, columna2: Las columnas que deseas seleccionar
  • nombre_tabla: La tabla de donde provienen los datos
  • columna1: La columna por la cual quieres ordenar
  • ASC: Orden ascendente (es el valor por defecto)
  • DESC: Orden descendente

📚 Ejemplo práctico: La tabla "empleados"

Para todos nuestros ejemplos, utilizaremos esta tabla de ejemplo llamada empleados:

id_empleado nombre apellido departamento salario fecha_contratacion
1 María García Ventas 45000 2020-03-15
2 Carlos Rodríguez Marketing 52000 2019-08-22
3 Ana Martínez Ventas 38000 2021-01-10
4 Luis Pérez Recursos Humanos 41000 2020-11-05
5 Elena Fernández Marketing 48000 2022-02-28

🔤 Ordenar por una sola columna

Orden Ascendente (ASC)

El orden ascendente es el predeterminado. Si no especificas nada, SQL asumirá ASC.

SELECT nombre, apellido, salario
FROM empleados
ORDER BY salario ASC;

Resultado:

nombre apellido salario
AnaMartínez38000
MaríaGarcía45000
LuisPérez41000
ElenaFernández48000
CarlosRodríguez52000

También puedes omitir ASC y escribir simplemente:

SELECT nombre, apellido, salario
FROM empleados
ORDER BY salario;

Orden Descendente (DESC)

Para obtener los valores más altos primero, utiliza DESC.

SELECT nombre, apellido, salario
FROM empleados
ORDER BY salario DESC;
💡 Tip práctico: Utiliza DESC cuando necesites encontrar rápidamente los valores máximos, como los empleados mejor pagados, los productos más caros, o las ventas más recientes.

📅 Ordenar por fechas

Ordenar por fechas es muy común. SQL maneja las fechas de forma inteligente, así que puedes ordenarlas naturalmente:

-- Empleados del más antiguo al más reciente
SELECT nombre, apellido, fecha_contratacion
FROM empleados
ORDER BY fecha_contratacion ASC;
-- Empleados más recientes primero
SELECT nombre, apellido, fecha_contratacion
FROM empleados
ORDER BY fecha_contratacion DESC;
⚠️ Precaución: El formato de fecha puede variar según el sistema de base de datos. MySQL usa 'YYYY-MM-DD', mientras que SQL Server puede usar 'MM/DD/YYYY'. Siempre verifica el formato de tu base de datos para evitar errores.

🔢 Ordenar por múltiples columnas

A veces necesitas un orden más complejo. Puedes especificar varias columnas separadas por comas:

SELECT nombre, departamento, salario
FROM empleados
ORDER BY departamento ASC, salario DESC;

¿Cómo funciona?

  1. Primero, SQL ordena por la primera columna especificada (departamento).
  2. Después, dentro de cada grupo, ordena por la segunda columna (salario).
  3. Esto permite crear subordenamientos dentro de categorías.

Resultado esperado:

nombre departamento salario
LuisRecursos Humanos41000
CarlosMarketing52000
ElenaMarketing48000
MaríaVentas45000
AnaVentas38000
"El orden de las columnas en ORDER BY importa mucho. SQL evalúa de izquierda a derecha, así que coloca primero la columna más importante para tu clasificación."
📌 Nota importante: Cada columna en ORDER BY puede tener su propia dirección (ASC o DESC). Esto es útil cuando quieres, por ejemplo, ordenar alfabéticamente por nombre, pero numéricamente por salario en sentido inverso.

📍 Ordenar por posición de columna

Otra técnica útil es ordenar por el número de posición de la columna en el SELECT:

-- "1" se refiere a la primera columna del SELECT (nombre)
-- "3" se refiere a la tercera columna del SELECT (salario)
SELECT nombre, apellido, salario
FROM empleados
ORDER BY 1 ASC, 3 DESC;
💡 Tip: Ordenar por posición es útil en consultas rápidas o cuando trabajas con expresiones complejas. Sin embargo, se recomienda usar nombres de columna para mayor claridad y mantenimiento del código.
Ver más: ¿Cuándo usar posición en lugar de nombre?

Usar posiciones es práctico cuando:

  • Estás probando consultas rápidas en la terminal
  • Las expresiones son muy largas y repetirías código
  • Estás utilizando funciones de agregación complejas

Sin embargo, es preferible usar nombres de columna porque:

  • El código es más legible para otros desarrolladores
  • Si modificas el SELECT, el ORDER BY sigue funcionando correctamente
  • Reduce errores cuando se agregan o eliminan columnas

🔗 Combinar ORDER BY con WHERE

Puedes filtrar datos con WHERE y luego ordenar los resultados:

SELECT nombre, departamento, salario
FROM empleados
WHERE salario > 40000
ORDER BY salario DESC;

Resultado: Solo empleados con salario mayor a 40,000, ordenados del más alto al más bajo.

❌ Valores NULL en el ordenamiento

Los valores NULL tienen un comportamiento especial en el ordenamiento:

  • En orden ascendente (ASC): Los NULL aparecen primero en la mayoría de bases de datos
  • En orden descendente (DESC): Los NULL aparecen al final
⚠️ Importante: Este comportamiento puede variar entre diferentes sistemas de bases de datos (MySQL, PostgreSQL, SQL Server, Oracle). Si necesitas controlar explícitamente la posición de los NULL, consulta la documentación específica de tu SGBD, ya que cada uno tiene su propia sintaxis para esto.

📋 Ordenar con datos de texto

El ordenamiento de texto sigue las reglas de colación de tu base de datos:

-- Ordenar alfabéticamente por apellido
SELECT nombre, apellido
FROM empleados
ORDER BY apellido ASC;
📌 Dato curioso: La colación determina si las mayúsculas se distinguen de las minúsculas. En la mayoría de bases de datos, 'A' y 'a' se tratan como iguales en orden alfabético. Pero con colaciones binarias, el orden podría ser diferente.

⚡ Casos de uso comunes de ORDER BY

Situación Consulta de ejemplo
Top 5 productos más vendidos ORDER BY ventas DESC LIMIT 5
Clientes por fecha de registro ORDER BY fecha_registro DESC
Empleados por departamento y luego por nombre ORDER BY departamento, nombre
Productos del más barato al más caro ORDER BY precio ASC
Órdenes más antiguas no completadas WHERE estado != 'completada' ORDER BY fecha ASC
💡 Tip profesional: En combinación con LIMIT o TOP, ORDER BY se vuelve extremadamente poderoso para obtener los "mejores" o "peores" registros de cualquier categoría.

🎯 Resumen de la lección

  1. ORDER BY siempre va al final de tu sentencia SELECT
  2. Por defecto, el orden es ascendente (ASC)
  3. Usa DESC para orden inverso
  4. Puedes ordenar por múltiples columnas separándolas con comas
  5. Cada columna puede tener su propia dirección de ordenamiento
  6. También puedes usar números de posición en lugar de nombres
  7. Combínalo con WHERE para filtrar antes de ordenar
CONCEPTO CLAVE
ORDER BY es fundamental para presentar datos de manera útil. Casi toda consulta de reporte o análisis utiliza esta cláusula para organizar la información de forma significativa para el usuario final.
🧠 Quiz: ¿Qué aprendiste?

Pregunta 1: ¿Cuál es la sintaxis correcta para ordenar una tabla "productos" por la columna "precio" de mayor a menor?

  • A) SELECT * FROM productos ORDER precio DESC;
  • B) SELECT * FROM productos ORDER BY precio DESC;
  • C) SELECT * BY ORDER productos precio DESC;
  • D) SELECT * FROM productos SORT BY precio DESC;
✅ Respuesta correcta: B) SELECT * FROM productos ORDER BY precio DESC;
La cláusula ORDER BY debe especificarse después del FROM, y DESC indica orden descendente.

Pregunta 2: Si quieres ordenar primero por "ciudad" y luego por "apellido", ¿cómo sería la consulta?

  • A) ORDER BY ciudad, apellido
  • B) ORDER BY apellido, ciudad
  • C) ORDER ciudad, apellido
  • D) SORT ciudad, apellido
✅ Respuesta correcta: A) ORDER BY ciudad, apellido
El orden de las columnas en ORDER BY determina la prioridad: primero se ordena por ciudad, y dentro de cada ciudad por apellido.

📝 Ejercicios propuestos

Usando la tabla empleados que conociste en esta lección, practica con estos ejercicios:

  1. Escribe una consulta para obtener todos los empleados ordenados alfabéticamente por nombre.
  2. Obtén los empleados de mayor a menor salario.
  3. Lista los empleados por departamento (alfabético) y dentro de cada departamento, del más reciente al más antiguo por fecha de contratación.
  4. Muestra los empleados del departamento de "Ventas" ordenados por salario de forma descendente.
  5. Encuentra los tres empleados con el salario más alto.
Ver soluciones
-- Ejercicio 1
SELECT * FROM empleados ORDER BY nombre ASC;
-- Ejercicio 2
SELECT * FROM empleados ORDER BY salario DESC;
-- Ejercicio 3
SELECT * FROM empleados 
ORDER BY departamento ASC, fecha_contratacion DESC;
-- Ejercicio 4
SELECT * FROM empleados 
WHERE departamento = 'Ventas' 
ORDER BY salario DESC;
-- Ejercicio 5
SELECT * FROM empleados 
ORDER BY salario DESC 
LIMIT 3;
📌 Próxima lección: En la siguiente lección aprenderás sobre Filtrado avanzado con WHERE, donde descubriremos operadores de comparación y condiciones más sofisticadas para refinar tus consultas.
Laboratorio de práctica

Antes de marcar esta lección como completa, escribí una evidencia breve para SQL para Principiantes: un ejemplo, una decisión, una captura, una mini demo o una nota que puedas reutilizar en portfolio.

Reflexión rápida

¿Qué cambiarías en tu forma de trabajar después de aplicar ordenar empleados por departamento y salario sql?

Respuesta directa

¿Cómo puede ordenar una tabla de empleados primero por "departamento" en orden alfabético y, dentro de cada departamento, por "salario" de mayor a menor?

Usá ORDER BY departamento ASC, salario DESC. Ese orden le dice a SQL que primero agrupe la tabla de empleados por departamento en orden alfabético y que, dentro de cada departamento, muestre el salario de mayor a menor. Si dos empleados tienen el mismo salario, podés agregar nombre ASC como tercer criterio.

SELECT nombre, departamento, salario
FROM empleados
ORDER BY departamento ASC, salario DESC;
Práctica SQL

Ordenar empleados por departamento y salario

Usá esta práctica para responder una pregunta típica de SQL: primero ordenar empleados por departamento en orden alfabético y, dentro de cada departamento, mostrar salarios de mayor a menor.

Datos de entrada

Tabla: empleados
Columnas: nombre, departamento, salario
Primer criterio: departamento A-Z
Segundo criterio: salario de mayor a menor dentro de cada departamento

Resultado esperado

Los departamentos quedan agrupados alfabéticamente.
Dentro de cada departamento, los salarios más altos aparecen primero.
La consulta muestra solo las columnas necesarias para revisar el resultado.

Solución correcta

SELECT nombre, departamento, salario
FROM empleados
ORDER BY departamento ASC, salario DESC;

Errores comunes

  • - Poner salario DESC antes de departamento ASC y cambiar la prioridad del orden.
  • - Olvidar DESC en salario, lo que deja los sueldos menores arriba.
  • - Ordenar solo por departamento y no resolver el empate interno por salario.
  • - Usar SELECT * cuando una respuesta clara solo necesita nombre, departamento y salario.
Práctica relacionada

Repasá ORDER BY con más casos de ordenamiento

Después de resolver empleados por departamento y salario, practicá ordenamientos con fechas, texto, números y desempates por múltiples columnas.

ORDER BY departamento ASC, salario DESC ORDER BY fecha_creacion DESC ORDER BY apellido ASC, nombre ASC
Practicar más ORDER BY
De lección a portfolio

Convertí esta lección en evidencia para Data Analyst.

Sumá un mini caso con datos, una conclusión de negocio y una captura del resultado. Eso pesa más que decir que viste la herramienta.

Paso 1

Publicá una consulta, dashboard o notebook con una conclusión clara.

Paso 2

Agregá contexto: problema, dato usado, decisión recomendada y limitación.

Paso 3

Guardá el enlace en tu CV, LinkedIn o portfolio antes de postular.

Newsletter Cursalo

Recibí rutas y cursos nuevos

Sumate para recibir recursos orientados a empleo y portfolio.

  • Rutas de empleo
  • Cursos prácticos
  • Portfolio y entrevistas

Sin spam. También podés entrar con tu cuenta para guardar progreso. Iniciá sesión

Ordenar empleados por departamento y salario SQL | CursaloFalar no WhatsApp