Si trabajas con datos en BigQuery, sabrás que lanzar un SELECT básico es solo el principio. El verdadero valor aparece cuando empiezas a modelar esa información para que sea útil en tus informes. En mi experiencia con clientes, he visto que quienes dominan las funciones de agregación y los operadores matemáticos ahorran horas de trabajo en dashboards y hojas de cálculo.
Dominando los cálculos matemáticos
BigQuery permite realizar operaciones matemáticas directamente sobre tus columnas. Puedes sumar, restar, multiplicar o dividir campos numéricos sin complicaciones. Lo que mejor me ha funcionado es siempre acompañar estas operaciones con la función ROUND para limitar los decimales, algo necesario cuando calculas ratios como la tasa de conversión.
Recuerda siempre usar alias (AS) en tus columnas calculadas. Si no lo haces, BigQuery les asignará nombres poco descriptivos como F0 o F1, lo cual se vuelve una pesadilla cuando intentas conectar esos datos a Data Studio o cualquier otra herramienta de visualización.
Funciones de agregación para el modelado de datos
Cuando necesitas sintetizar información, las funciones de agregación son tus mejores aliadas:
- COUNT: Ideal para contar el total de filas, aunque te sugiero usarla siempre que la columna no contenga valores nulos.
- COUNT DISTINCT: Es la que más utilizo. Me sirve para obtener valores únicos, como el total de URLs distintas o keywords únicas que han recibido clics, evitando duplicados innecesarios en el análisis.
- SUM y AVG: Útiles para totales y medias, pero ten cuidado al calcular ratios. Nunca sumes porcentajes directamente; es preferible sumar los componentes (como transacciones y sesiones) y realizar la división después para obtener el dato real.
Lo que he aprendido a lo largo de 15 años es que el modelado no trata de escribir la query más larga, sino de ir paso a paso. Si una query se vuelve compleja, divídela. Crea una tabla temporal con el resultado de una transformación, guárdala y úsala como base para la siguiente. Este flujo de trabajo evita errores y hace que tus datos sean mucho más limpios antes de llegar a la capa de reporte.
No te limites a extraer datos; transfórmalos para que respondan a las preguntas de negocio de tu cliente. Si necesitas cambiar un valor, usa REPLACE o REGEX_REPLACE. Si los datos vienen como texto y necesitas operar con ellos, el uso de CAST o SAFE_CAST te ahorrará más de un dolor de cabeza al intentar sumar lo que el sistema interpreta como una cadena.
Preguntas frecuentes
¿Por qué es mejor usar SAFE_CAST que CAST?
SAFE_CAST devuelve un valor nulo en lugar de fallar la consulta si la conversión no es posible, lo que evita que todo tu informe se bloquee por un dato erróneo.
¿Puedo hacer operaciones matemáticas entre columnas de distintas tablas?
Sí, siempre y cuando hayas realizado un JOIN previo entre ambas tablas. Una vez unidas, puedes operar con cualquier columna disponible en el resultado final.
¿Qué diferencia hay entre COUNT y COUNT DISTINCT?
COUNT cuenta el número total de filas, mientras que COUNT DISTINCT cuenta solo los valores únicos, ignorando las repeticiones en la columna seleccionada.