WITH block_diffs AS (
SELECT
BLOCK_TIMESTAMP,
LAG(BLOCK_TIMESTAMP) OVER (ORDER BY BLOCK_NUMBER) AS previous_block_time
FROM
polygon.core.fact_blocks
WHERE
BLOCK_TIMESTAMP >= '2023-09-01'
AND BLOCK_TIMESTAMP < '2023-10-01'
)
SELECT
AVG(TIMESTAMPDIFF(SECOND, previous_block_time, BLOCK_TIMESTAMP)) AS avg_block_time_seconds
FROM
block_diffs
WHERE
previous_block_time IS NOT NULL;