Skip to main content
Al trabajar con datos de series temporales, puede haber huecos debido a la falta de datos o a la inactividad. Por lo general, no queremos que esos huecos aparezcan al consultar los datos. En este caso, la cláusula WITH FILL puede resultar útil. En esta guía se explica cómo usar WITH FILL para rellenar huecos en datos de series temporales.

Configuración

Imaginemos que tenemos la siguiente tabla, que almacena metadatos sobre imágenes generadas por un servicio de imágenes de GenAI:
Importemos algunos registros:

Consulta por intervalo

Vamos a explorar las imágenes creadas entre 00:24:03 y 00:24:04 del 24 de marzo de 2023, así que creemos algunos parámetros para esos instantes:
A continuación, escribiremos una consulta que agrupa los datos en intervalos de 100 ms y devuelve el número de imágenes creadas en ese intervalo:
El conjunto de resultados solo incluye los intervalos en los que se creó una imagen, pero para el análisis de series temporales, quizá queramos devolver cada intervalo de 100 ms, aunque no tenga ninguna entrada.

WITH FILL

Podemos usar la cláusula WITH FILL para rellenar estos huecos. También especificaremos el STEP, que define el tamaño de los huecos que se rellenarán. De forma predeterminada, este valor es de 1 segundo para los tipos DateTime, pero queremos rellenar huecos de 100 ms de duración, así que usemos un intervalo de 100 ms como valor de paso:
Podemos ver que los huecos se han rellenado con el valor 0 en la columna count.

WITH FILL…FROM

Sin embargo, aún queda un hueco al principio del intervalo de tiempo, que podemos corregir especificando FROM:
Podemos ver en los resultados que ahora aparecen todos los intervalos entre 00:24:03.000 y 00:24:03.500.

WITH FILL…TO

Sin embargo, siguen faltando algunos intervalos al final del rango de tiempo, que podemos completar especificando un valor TO. TO no es inclusivo, así que añadiremos una pequeña cantidad al tiempo de finalización para asegurarnos de que quede incluido:
Ahora ya se han rellenado todos los huecos y tenemos un registro cada 100 ms desde 00:24:03.000 hasta 00:24:05.000.

Recuento acumulado

Supongamos que ahora queremos llevar un recuento acumulado del número de imágenes creadas en todos los intervalos. Podemos hacerlo añadiendo una columna cumulative, como se muestra a continuación:
Los valores de la columna acumulada no funcionan como nos gustaría.

WITH FILL…INTERPOLATE

Cualquier fila que tenga 0 en la columna count también tiene 0 en la columna cumulative, pero lo que queremos es que use el valor anterior de la columna cumulative. Podemos hacerlo usando la cláusula INTERPOLATE, como se muestra a continuación:
Eso queda mucho mejor. Y ahora, para rematarlo, añadamos un gráfico de barras usando la función bar, sin olvidar añadir nuestra nueva columna a la cláusula INTERPOLATE.
Última modificación el 3 de julio de 2026