Afonso_Diazovertime
    Updated 2024-10-10
    with

    main as (
    select
    event_contract as contract,
    block_timestamp
    from flow.core.fact_events
    ),

    new_contracts as (
    select
    date_trunc('{{ period }}', created_at) as date,
    count(distinct contract) as new_contract
    from (
    select
    contract,
    min(block_timestamp)::date as created_at
    from main
    group by 1
    )
    group by 1
    ),

    active_contracts as (
    select
    date_trunc('{{ period }}', block_timestamp) as date,
    count(distinct contract) as active_contracts
    from main
    where date between case '{{ type }}'
    when 'daily' then date('{{ end_date }}') - interval '1 day'
    when 'weekly' then date('{{ end_date }}') - interval '1 week'
    when 'monthly' then date('{{ end_date }}') - interval '1 month'
    when 'yearly' then date('{{ end_date }}') - interval '1 year'
    end and '{{ end_date }}'
    group by 1
    )
    QueryRunArchived: QueryRun has been archived