with base as (select buyer,
min(block_timestamp) as first_buy
from flow.core.fact_nft_sales
where tx_succeeded = 'TRUE'
group by 1)
select split(nft_collection, '.')[2] as collection,
count(distinct(tx_id)) as count_tx
from flow.core.fact_nft_sales a
join base b
on a.buyer = b.buyer and b.first_buy = a.block_timestamp
group by 1
order by 2 DESC
limit 5