select
week,
count(*) as new_swappers,
sum(new_swappers) over (order by week) as total_swappers
from (
select
from_address,
min(date_trunc('week', block_timestamp)) as week,
count(Distinct tx_id) as transactions,
sum(case when not FROM_AMOUNT_USD is null then FROM_AMOUNT_USD else to_AMOUNT_USD end) as swap_volume_Usd
from maya.defi.fact_swaps
group by 1
)
group by 1