WITH block1 AS (
SELECT
BLOCK_TIMESTAMP AS date1,
BLOCK_NUMBER AS block1
FROM optimism.core.fact_blocks
WHERE date1 >= CURRENT_DATE - 1
),
block2 AS (
SELECT
BLOCK_TIMESTAMP AS date2,
BLOCK_NUMBER AS block2
FROM optimism.core.fact_blocks
WHERE date2 >= CURRENT_DATE - 2
),
interval AS (
SELECT
DATEDIFF ('second', date1 , date2) AS diff
FROM block1, block2
WHERE block2 - block1 = 1
)
SELECT
min (diff) AS min_time,
max (diff) AS max_time,
sum (diff)/COUNT (*) AS avg_time
FROM interval