Aprender a transformar una pregunta de negocio en una consulta SQL funcional es una de las habilidades más valiosas en el análisis de datos. A través de un ejemplo práctico con una empresa que vende bocinas, se muestra paso a paso cómo construir un query que responda a una necesidad real: saber cuántas bocinas se han vendido por más de seiscientos pesos mexicanos desde el año 2019.
¿Cómo traducir una pregunta de negocio a SQL?
Antes de escribir cualquier línea de código, es fundamental entender la pregunta que la empresa necesita responder [0:08]. En este caso, la empresa de bocinas plantea: "ayúdanos a saber cuántas bocinas hemos vendido por más de seiscientos pesos mexicanos desde el año 2019". Esa pregunta contiene tres filtros claros: el producto (bocina), el valor (mayor a 600) y el año (desde 2019 en adelante).
La tabla disponible se llama ventas 2020 y contiene las columnas: día, mes, año, producto, ID y valor [1:00]. Cada columna tiene reglas lógicas que vale la pena validar antes de operar.
¿Por qué es importante validar los datos antes de hacer un query?
Revisar la veracidad y especificación de cada dato ayuda a evitar errores en el análisis [1:22]. Por ejemplo:
- La columna día solo debe contener valores del 1 al 31.
- La columna mes debe ir del 1 al 12; no existe un mes catorce.
- La columna año debe estar dentro del rango en que la empresa ha operado, en este caso desde 1990 hasta 2020.
Esta validación previa es una buena práctica que protege la calidad de los resultados.
¿Qué significa cada parte de la consulta SELECT?
La construcción del query sigue la estructura clásica de SQL [2:22]. Se inicia con SELECT, que indica qué información queremos obtener. En este ejemplo, la pregunta es "cuántas bocinas", por lo que se necesita contar registros únicos.
El ID representa el registro único de cada venta. Usar COUNT(DISTINCT ID) permite contar cuántas ventas distintas cumplen las condiciones, sin duplicados [2:38].
¿Cómo funcionan WHERE y AND para filtrar resultados?
Después de indicar de dónde provienen los datos con FROM ventas_2020, se agregan las condiciones con la cláusula WHERE [3:04]. Esta función agrupa los filtros que debe cumplir cada registro para ser incluido en el resultado.
Las condiciones aplicadas son:
- WHERE producto = 'bocina': filtra solo las ventas de bocinas; como es texto, se escribe entre comillas [3:16].
- AND valor > 600: agrega un segundo filtro para que el precio supere los seiscientos pesos; al ser un número, no lleva comillas [3:38].
- AND año >= 2019: incluye el año 2019 y posteriores usando el operador mayor o igual [3:52].
El operador AND conecta condiciones adicionales, lo que significa que todas deben cumplirse simultáneamente para que un registro aparezca en el resultado.
¿Por qué SQL es indispensable para análisis con grandes volúmenes de datos?
Al ejecutar la consulta completa, el resultado es dos [4:10]. En una tabla pequeña, esto se puede verificar visualmente. Sin embargo, cuando una tabla tiene un millón de registros o más, es imposible hacer este análisis de forma manual [4:24].
La moneda también es un detalle relevante: verificar que los valores estén en la moneda correcta —en este caso, pesos mexicanos— evita errores de interpretación [2:08].
El código completo queda así:
sql
SELECT COUNT(DISTINCT ID)
FROM ventas_2020
WHERE producto = 'bocina'
AND valor > 600
AND año >= 2019;
Cada parte cumple una función específica: SELECT define qué extraer, FROM indica la fuente, y WHERE con AND establecen las reglas de filtrado. Dominar esta estructura permite responder prácticamente cualquier pregunta de negocio que involucre datos tabulares.
Si tienes dudas sobre cómo aplicar estos filtros a tus propios datos, comparte tu caso en los comentarios.