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
- Usar
BETWEENcon valores incorrectamente ordenados:BETWEENes 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.
- Usar
BETWEENcon valores extremos: Si usamosBETWEENen 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);
- Usar
INcon demasiados valores: Si usamosINcon 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
- Verifica el orden de los extremos en
BETWEEN: Asegúrate de que los valores mínimos y máximos estén correctamente ordenados. - Usa
BETWEENcon precaución: Evita usarBETWEENcon valores extremos sin estar seguro del rango correcto. - Optimiza el uso de
IN: Si usasINcon una lista larga, considera utilizar subconsultas o tablas temporales para mejorar la eficiencia. - Comprueba los resultados: Asegúrate de que los datos filtrados sean correctos y relevantes para tu análisis.
- Documenta las consultas: Anota el propósito y las condiciones del filtro en tus consultas SQL.
Siguientes pasos
- Práctica constante: Utiliza
BETWEENyINregularmente en tus proyectos para mejorar tu flujo de trabajo. - Revisa la documentación oficial de SQL: Familiarízate con las mejores prácticas y las características más recientes del lenguaje.
- 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.