Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

SQL para ciencia de datos, Unidad 2 — Fundamentos de SQL orientados a datos, 2.2 — Filtrado de datos ·

Filtrado por rangos y conjuntos

Filtrado por rangos y conjuntos

Introducción

El filtrado de datos es una habilidad fundamental para cualquier científico de datos. Específicamente, el filtrado por rangos y conjuntos nos permite seleccionar filas que cumplen con ciertas condiciones, permitiendo realizar análisis más precisos y relevantes. En este artículo, exploraremos cómo usar funciones de filtrado en SQL para trabajar con rangos y conjuntos de datos.

Explicación principal

En SQL, existen varias formas de filtrar datos basados en rangos y conjuntos:

USANDO BETWEEN Y IN

La función BETWEEN se usa comúnmente para filtrar filas dentro de un rango. Por ejemplo, si queremos seleccionar los salarios entre $30,000 y $50,000 en una tabla llamada empleados, podríamos escribir:

SELECT *
FROM empleados
WHERE salario BETWEEN 30000 AND 50000;

La función IN se usa para filtrar filas basadas en un conjunto de valores. Por ejemplo, si queremos seleccionar los empleados que tienen el departamento 'Ventas' o 'Recursos Humanos', podríamos escribir:

SELECT *
FROM empleados
WHERE departamento IN ('Ventas', 'Recursos Humanos');

USANDO BETWEEN Y IN JUNTOS

A menudo, necesitaremos filtrar datos que cumplen con múltiples condiciones. Esto se puede lograr combinando las funciones BETWEEN y IN. Por ejemplo:

SELECT *
FROM empleados
WHERE departamento IN ('Ventas', 'Recursos Humanos') AND salario BETWEEN 30000 AND 50000;

Errores típicos / trampas

  1. Usar BETWEEN con valores incorrectamente ordenados: BETWEEN es inclusivo de los extremos, lo que significa que ambos extremos del rango se incluyen en el resultado. Si usamos valores incorrectamente ordenados, obtendremos resultados inesperados:
   SELECT *
   FROM empleados
   WHERE salario BETWEEN 50000 AND 30000; -- Esto filtrará filas donde salario es mayor a 50000 o menor a 30000.
  1. Usar BETWEEN con valores extremos: Si usamos BETWEEN en una columna numérica y no sabemos cuáles son los valores máximos y mínimos, podríamos filtrar filas innecesariamente. Por ejemplo:
   SELECT *
   FROM empleados
   WHERE salario BETWEEN (SELECT MIN(salario) - 1000 FROM empleados) AND (SELECT MAX(salario) + 1000 FROM empleados);
  1. Usar IN con demasiados valores: Si usamos IN con una lista de valores muy larga, SQL puede tener dificultades para optimizar la consulta. En tales casos, considera usar una tabla temporal o un subconjunto de los valores:
   SELECT *
   FROM empleados
   WHERE departamento IN ('Ventas', 'Recursos Humanos', 'IT', ... , 'Logística'); -- Lista muy larga

Checklist accionable

  1. Verifica el orden de los extremos en BETWEEN: Asegúrate de que los valores mínimos y máximos estén correctamente ordenados.
  2. Usa BETWEEN con precaución: Evita usar BETWEEN con valores extremos sin estar seguro del rango correcto.
  3. Optimiza el uso de IN: Si usas IN con una lista larga, considera utilizar subconsultas o tablas temporales para mejorar la eficiencia.
  4. Comprueba los resultados: Asegúrate de que los datos filtrados sean correctos y relevantes para tu análisis.
  5. Documenta las consultas: Anota el propósito y las condiciones del filtro en tus consultas SQL.

Siguientes pasos

  1. Práctica constante: Utiliza BETWEEN y IN regularmente en tus proyectos para mejorar tu flujo de trabajo.
  2. Revisa la documentación oficial de SQL: Familiarízate con las mejores prácticas y las características más recientes del lenguaje.
  3. Implementa consultas filtradas en datasets reales: Aplica lo que has aprendido a bases de datos reales para mejorar tus habilidades analíticas.

Siguiendo estos pasos, podrás dominar el filtrado por rangos y conjuntos en SQL, lo cual es una herramienta invaluable para cualquier científico de datos.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).