
Antes del tablero: cómo validar una métrica en PostgreSQL
Un tablero puede mostrar una cifra calculada correctamente y aun así responder a una pregunta equivocada. Antes de diseñar la visualización, conviene acordar qué se mide, revisar los datos que entran en el cálculo y comprobar que el resultado se puede reproducir.
Esta guía propone comprobaciones que deben adaptarse al esquema y a las reglas de cada negocio. La documentación citada corresponde a PostgreSQL 18. No se proporcionaron una métrica concreta, datos ni la versión instalada, por lo que aquí no se ha ejecutado ninguna consulta ni validado una cifra real.
1. Define la métrica antes de consultar
Escribe una definición que otra persona pueda usar para reconstruir el cálculo. Incluye la unidad de análisis, la población, la fórmula, el periodo, la zona horaria, las exclusiones y el tratamiento de los valores ausentes.
Si la métrica es una tasa, define por separado el numerador y el denominador. Especifica también qué debe mostrarse cuando el denominador es cero. Una respuesta ausente, un cero y una tasa que no se puede calcular pueden tener significados distintos.
2. Comprueba nulos y conjuntos vacíos
Cuenta las filas y mide por separado los valores ausentes de las columnas que intervienen en la fórmula. La tabla 9.62 de PostgreSQL 18 describe COUNT(*) como el número de filas de entrada y COUNT(expresión) como el número de filas cuyo valor de entrada no es nulo. El pasaje posterior a la tabla señala que, salvo COUNT, los agregados de propósito general allí tratados devuelven NULL cuando no se seleccionan filas.
La documentación describe COUNT(*) como «the number of input rows» y precisa que COUNT(expresión) cuenta los valores que «is not null». Para la ausencia de filas, usa la salvedad «except for count».
Antes de sustituir un NULL por cero, decide si esa representación conserva el significado de la métrica. Por ejemplo, la ausencia de registros para un periodo puede requerir una revisión de la carga antes de interpretarse como actividad cero.
3. Revisa el grano y las uniones
El grano describe qué representa cada fila en el cálculo: por ejemplo, una entidad o un evento. Según la sección 7.2.1.1 sobre uniones, en un INNER JOIN cada fila de la primera tabla produce una fila por cada coincidencia de la segunda que satisface la condición. Por ello, varias coincidencias pueden generar varias filas para una misma entidad.
Como comprobación práctica, compara el número de filas y de identificadores distintos antes y después de cada unión. Examina las claves con varias coincidencias y los registros sin pareja. Un cambio en el número de filas no implica necesariamente un error: contrástalo con el grano que definiste.

4. Fija el periodo y la zona horaria
Documenta la zona horaria que determina a qué día o mes pertenece cada evento. La sección 9.9.2 de PostgreSQL 18 indica que date_trunc, aplicado a timestamp with time zone, utiliza por defecto «the current TimeZone setting» y admite un argumento opcional para especificar otra zona.
Una práctica útil es definir cada intervalo con inicio inclusivo y fin exclusivo. Después, revisa eventos cercanos a los límites del periodo, a la medianoche y a los cambios de horario, según la zona elegida. Así puedes comprobar que las reglas temporales se aplican como espera el negocio.

5. Compara cálculos sobre una vista consistente
Si los datos cambian mientras reconcilias resultados, una transacción con aislamiento REPEATABLE READ permite que las consultas sucesivas utilicen una instantánea estable frente a cambios concurrentes. La sección 13.2.2 sitúa esa instantánea al inicio de la primera sentencia que no sea de control de transacción. También indica que cada consulta ve los efectos de actualizaciones previas «within its own transaction»: por tanto, las escrituras de la propia transacción pueden afectar a consultas posteriores.
Esta vista consistente facilita la comparación, pero no demuestra que las cargas de origen estén completas ni que las reglas de negocio sean correctas. Esas comprobaciones requieren evidencia adicional del entorno.
6. Reconcilia y guarda la evidencia
Elige un periodo pequeño y contrasta la cifra con registros individuales o con una fuente independiente, si existe. Revisa duplicados y valores atípicos, y explica las diferencias encontradas. Dos consultas que comparten la misma lógica pueden repetir el mismo error, por lo que su coincidencia no constituye una validación independiente.
Conserva la consulta, la fecha de corte, la versión de la definición y las diferencias aceptadas. Antes de dar por validada la métrica, verifica también la definición de negocio, la completitud de las cargas y la disponibilidad de una fuente de conciliación en el entorno correspondiente.
Comentarios
Publicar un comentario