select
block_timestamp::date as day,
count (distinct tx_hash) as tx_num,
count(distinct(iff(status = 'SUCCESS', tx_hash, null))) as success_tx_num,
count(distinct(iff(status != 'SUCCESS', tx_hash, null))) as failed_tx_num,
tx_num / 1440 as tpm,
tx_num / 86400 as tps,
sum(tx_num) over (order by day asc) as comulative_tx_num
from ethereum.core.fact_transactions
where block_timestamp >= current_date - interval '1 year'
group by 1