Volver a la lista de artículos Artículos
Lectura de 9 minutos

Consultas SQL que utilizará en la vida real

Aprenda las consultas SQL esenciales en las que confían a diario los analistas de datos, los expertos en marketing y los equipos de producto, con ejemplos sencillos y fáciles de entender.

Cuando se está empezando con SQL, es fácil sentirse abrumado por la sintaxis y la teoría. Pero la verdad es que la mayoría de los profesionales, ya sean analistas de datos, expertos en marketing o jefes de producto, utilizan un pequeño conjunto de consultas SQL una y otra vez para realizar su trabajo. No es necesario aprenderlo todo de una vez.

Este artículo le guiará a través de las consultas SQL esenciales que los principiantes utilizan realmente en el trabajo. Sin datos abstractos ni matemáticas complicadas: sólo ejemplos claros y fáciles de entender para principiantes que podrás aplicar de inmediato.

Imaginemos que estás trabajando con la base de datos de una librería online. Desea analizar las tablas de pedidos y clientes para responder a preguntas comerciales cotidianas.

Para aprender SQL paso a paso, con ejercicios prácticos y ejemplos reales, visite nuestro cursoSQL para principiantes . Es todo lo que necesitas para construir una base sólida. El curso incluye 129 ejercicios interactivos, todos ellos centrados en el aprendizaje práctico. Escribirás código SQL real desde el principio, recibirás comentarios al instante y adquirirás la confianza necesaria para utilizar SQL en tu trabajo diario.

¡Empecemos con las consultas!

1. 1. Vea una muestra de los datos

La primera consulta que ejecutará en casi cualquier base de datos es un vistazo rápido a los datos en sí. Quieres ver con qué tipo de información estás trabajando.

SELECT * 
FROM orders
LIMIT 10;

Esta consulta selecciona todas las columnas pero sólo muestra las 10 primeras filas. Permite echar un vistazo rápido a la estructura de la tabla orders incluyendo columnas como order_id, customer_id, order_date y total_amount. Es una forma sencilla de familiarizarse con el conjunto de datos antes de empezar a analizarlo. Es importante no seleccionar todas las filas de la tabla, especialmente en conjuntos de datos grandes, ya que esto puede saturar la base de datos. Seleccionar sólo 10 o 20 filas es una forma segura de previsualizar los datos.

2. Conocer el tamaño de la tabla

La siguiente consulta que se suele realizar es para averiguar cuántas filas hay en una tabla:

SELECT COUNT(*) 
FROM orders;

Esto le indica cuántos pedidos tiene su empresa en total. Es una buena idea ejecutar esto para todas las tablas con las que planea trabajar, para saber cuán grande es cada una antes de sumergirse en el análisis.

3. Ver todos los valores únicos de una columna

A continuación, querrá comprobar todos los valores únicos de una columna, especialmente en el caso de columnas de "diccionario" como nombres de ciudades, categorías de productos o métodos de pago. Se trata de columnas en las que cada valor representa una etiqueta, un tipo o una categoría, y comprender lo que contiene le ayudará a tomar mejores decisiones durante el análisis.

Por ejemplo, para ver los diferentes métodos de pago utilizados:

SELECT DISTINCT payment_method 
FROM orders;

La palabra clave DISTINCT elimina los duplicados de los resultados. En lugar de mostrar el valor de cada fila, sólo devuelve cada valor único una vez. Así, si "tarjeta_crédito" aparece 5.000 veces en la tabla, sólo aparecerá una vez en el resultado.

Esto es útil cuando se desea:

  • Comprobar la lista completa de opciones disponibles en una columna.
  • Comprender cómo se categorizan los valores.
  • Prepararse para filtrar, agrupar o limpiar sus datos.

Puede utilizar DISTINCT con cualquier columna para explorar rápidamente la variedad de valores que contiene.

4. Contar la frecuencia con que aparece cada valor

Esta es una de las consultas más utilizadas en la vida real. Le ayuda a ver la distribución de valores en una columna - especialmente en columnas "diccionario" como payment_method, category, o city.

Digamos que desea saber cuántos pedidos se realizaron utilizando cada método de pago:

SELECT payment_method, COUNT(*) AS num_orders
FROM orders
GROUP BY payment_method;

Esta consulta agrupa las filas por payment_method y luego cuenta cuántas filas (es decir, pedidos) corresponden a cada grupo. El resultado muestra cada método de pago junto con el número de pedidos que lo utilizaron.

Utilice este patrón siempre que desee desglosar sus datos por categorías; por ejemplo, para ver cuántos pedidos proceden de cada ciudad o cuántos productos corresponden a cada categoría.

Para facilitar la lectura de los resultados, puede ordenarlos por frecuencia (de mayor a menor):

SELECT payment_method, COUNT(*) AS num_orders
FROM orders
GROUP BY payment_method
ORDER BY COUNT(*) DESC;

Esto te ayuda a ver rápidamente qué valores son los más comunes.

5. Encontrar los valores mínimo, máximo y medio

A continuación, querrá ver el rango de valores en una columna numérica. Esto le ayuda a entender cosas como el tamaño del pedido, el precio o la cantidad.

Por ejemplo, para comprobar los importes mínimo, máximo y medio de los pedidos:

SELECT 
  MIN(total_amount) AS smallest_order,
  MAX(total_amount) AS biggest_order,
  AVG(total_amount) AS average_order
FROM orders;

Esta consulta utiliza tres funciones de agregación:

  • MIN encuentra el valor más pequeño.
  • MAX encuentra el valor más grande.
  • AVG calcula la media.

Le ofrece una visión general rápida de la dispersión de valores en la columna total_amount, útil para detectar valores atípicos o establecer umbrales para análisis posteriores.

Bonificación: puede desglosar el rango por categoría utilizando GROUP BY. Por ejemplo, para ver el importe mínimo, máximo y medio de los pedidos por método de pago:

SELECT  
  payment_method,  
  MIN(total_amount) AS smallest_order,  
  MAX(total_amount) AS biggest_order,  
  AVG(total_amount) AS average_order  
FROM orders  
GROUP BY payment_method;

Esto le permite comparar cómo se desempeñan las diferentes categorías - como qué método de pago tiende a tener importes de pedidos más altos o más bajos.

6. Filtrar filas con WHERE

A veces no necesita toda la tabla, sino sólo las filas que cumplen determinadas condiciones.

Por ejemplo, para ver sólo los pedidos superiores a 100 dólares:

SELECT *
FROM orders
WHERE total_amount > 100;

Esta es la forma de centrarse en los pedidos de alto valor - ideal para detectar los grandes gastadores o identificar clientes VIP potenciales.

También puede combinar varias condiciones utilizando AND:

SELECT *
FROM orders
WHERE total_amount > 100
  AND payment_method = 'credit_card';

Ahora está filtrando los clientes que han gastado más de 100 $ y han pagado con tarjeta de crédito: puede que éstos sean sus usuarios más valiosos.

Filtrar con WHERE es una de las cosas más útiles que hará en SQL. Le ayuda a responder preguntas comerciales específicas, como:

  • ¿Quién ha realizado grandes compras?
  • ¿Quién utilizó un método de pago específico?
  • ¿Qué pedidos se realizaron después de una fecha determinada?

También puede utilizar OR, IN, NOT, y otros operadores para personalizar sus filtros aún más - pero WHERE es el punto de partida para casi cualquier inmersión profunda en datos.

7. 7. Ordene sus datos con ORDER BY

¿Quiere ver primero los pedidos de mayor valor? Puede ordenar sus resultados utilizando ORDER BY y controlar la dirección con DESC (para descendente) o ASC (para ascendente):

SELECT *  
FROM orders  
ORDER BY total_amount DESC  
LIMIT 10;

Aquí se muestran los 10 pedidos más grandes jamás realizados, ordenados de mayor a menor por total_amount.

Este tipo de consulta es ideal para todo tipo de tareas de ordenación, como:

  • Encontrar los resultados superiores o inferiores en función de cualquier columna.
  • Clasificar artículos por ventas, cantidad o rendimiento.
  • Detectar tendencias ordenando los datos a lo largo del tiempo.
  • Resaltar valores atípicos o inusuales.

Si desea ver los pedidos más pequeños, cambie DESC a ASC:

…
ORDER BY total_amount ASC

Consejo profesional: Puede ordenar por cualquier columna, no sólo por números. Por ejemplo, la ordenación por order_date muestra los pedidos más nuevos o más antiguos, dependiendo de la dirección de la ordenación.

8. Combinar tablas con JOIN

Una de las consultas más comunes que utilizará en la vida real es un JOIN. Esto se debe a que la información útil a menudo se encuentra dispersa en múltiples tablas. Constantemente necesitará combinarlas para obtener la imagen completa.

Por ejemplo, la tabla de pedidos sólo almacena customer_id, no el nombre real del cliente. Para ver cada pedido junto con el nombre de la persona que lo realizó, es necesario unirla con la tabla customers:

SELECT  
  o.order_id,  
  c.customer_name,  
  o.total_amount,  
  o.order_date  
FROM orders o  
JOIN customers c ON o.customer_id = c.customer_id;

Esta consulta conecta las dos tablas utilizando la columna customer_id, que existe en ambas. Utilizamos alias de tablas (o para orders, c para customers) para facilitar la lectura de la consulta.

¿El resultado? Un conjunto de datos mucho más útil. Ahora puede ver quién realizó cada pedido, cuánto gastó y cuándo, lo que resulta esencial para el análisis de clientes, la elaboración de informes y la visión empresarial.

Los JOIN están en todas partes. Siempre que trabajes con bases de datos reales, estarás uniendo tablas, ya sean pedidos y clientes, productos y categorías, o usuarios y registros de actividad.

9. Filtrar por intervalo de fechas

Una de las tareas más comunes en la vida real es filtrar datos para un periodo de tiempo específico - como mostrar todos los pedidos de un mes o trimestre determinado.

Supongamos que desea ver todos los pedidos realizados en mayo de 2024:

SELECT *  
FROM orders  
WHERE order_date >= '2025-05-01'  
  AND order_date < '2025-06-01';

Esto devuelve todos los pedidos en los que order_date cae entre el 1 de mayo y el 31 de mayo de 2025 - incluido el 1 de mayo y hasta (pero no incluido) el 1 de junio.

El formato de fecha utilizado aquí es YYYY-MM-DD:

  • YYYY = año de 4 dígitos (por ejemplo, 2024)
  • MM = 2 dígitos del mes (por ejemplo, 05 para mayo)
  • DD = día de 2 dígitos (p. ej. 01 para el día 1 del mes)

Utilizar < '2024-06-01' en lugar de <= '2024-05-31' es más seguro cuando su columna incluye valores de tiempo, como '2024-05-31 15:42:00', porque evita excluir accidentalmente datos del último día.

Consejo final: Practique con datos reales

La mejor forma de recordar estas consultas es utilizarlas. Practica con datos que tengan sentido para ti, como pedidos de clientes, tráfico del blog o uso de la aplicación. SQL no tiene por qué ser abrumador. No necesitas cientos de comandos para hacer un trabajo real, sólo un pequeño conjunto de consultas prácticas en las que puedas confiar cada día.

Para adquirir confianza y memoria muscular, pruebe el cursoSQL para principiantes en LearnSQL.es. En él podrás practicar con conjuntos de datos realistas y 129 ejercicios interactivos, de modo que aprenderás escribiendo SQL de verdad, no sólo leyendo sobre él.

Empieza por lo básico y te sorprenderá lo lejos que te puede llevar.