with base aS (select
date_trunc('hour', a.block_timestamp) as day,
datediff(second, a.block_timestamp, b.block_timestamp) as time_between_blocks
from solana.core.fact_blocks a
join solana.core.fact_blocks b
on a.block_id = b.block_id - 1
where a.block_timestamp >= '2022-06-01')
select avg(time_between_blocks) as "Time Between Blocks",
'Average Time Between Blocks' as "Min, Avg and Max"
from base
union
select max(time_between_blocks),
'Max Time Between Blocks'
from base
union
select min(time_between_blocks),
'Min Time Between Blocks'
from base
order by 1 asc