with all_blocks as (
select distinct
block_number as block_id
, block_timestamp
, date_trunc(day, block_timestamp) as block_day
, min(block_timestamp) over (partition by block_day order by block_timestamp) as min_blocktime
from polygon.core.fact_blocks
where block_timestamp > '2021-01-01'
)
select
block_timestamp
, block_day::date as block_day
, block_id
from all_blocks
where block_timestamp = min_blocktime
order by block_id