Updated 2024-08-30
    with

    new_contracts as (
    select
    event_contract as contract_address,
    min(block_timestamp) as created_at
    from flow.core.fact_events
    where tx_succeeded = 1
    group by 1
    having created_at >= current_date - interval '1 month'
    ),

    transactions as (
    select
    tx_id,
    block_timestamp,
    a.event_contract as contract_address,
    c.authorizers[0] as user,
    b.event_data:amount as tx_fee
    from flow.core.fact_events a
    join flow.core.fact_events b
    using (tx_id, tx_succeeded)
    join flow.core.fact_transactions c
    using (tx_id, tx_succeeded)
    where tx_succeeded = 1
    and b.event_contract = 'A.f919ee77447b7497.FlowFees'
    and b.event_Type = 'FeesDeducted'
    and block_timestamp::date >= current_date - interval '1 month'
    )

    select
    count(distinct contract_address) as total_contracts,
    count(distinct tx_id) as transactions,
    count(distinct user) as users,
    sum(tx_fee) / total_contracts as average_fee_volume_per_contract,
    transactions / total_contracts as average_transactions_per_contract,
    QueryRunArchived: QueryRun has been archived