frankmaseo2023-03-13 12:06 PM
    WITH
    --On chain basic data
    max_eth_balance as (
    SELECT
    USER_ADDRESS as address,
    max(balance / pow(10,18)) AS max_eth_balance,
    min(block_number) as first_block,
    max(block_number) as last_block
    FROM ethereum.core.fact_eth_balances
    WHERE block_number < {{last_block_number}}
    AND user_address = lower({{address}})
    GROUP BY 1
    )
    ,transactions as (
    SELECT
    FROM_ADDRESS as address
    ,min(DATE_TRUNC('month',block_timestamp)) as first_month
    ,count(tx_hash)
    / (MONTHS_BETWEEN(current_date(), min(DATE_TRUNC('month',block_timestamp))) + 1) as mthly_tx_count
    ,sum(ETH_VALUE)
    / (MONTHS_BETWEEN(current_date(), min(DATE_TRUNC('month',block_timestamp))) + 1) as mthly_total_eth
    FROM ethereum.core.fact_transactions
    WHERE block_number < {{last_block_number}}
    AND FROM_ADDRESS = lower({{address}})
    GROUP BY 1
    )
    , dex_users as (
    SELECT
    ORIGIN_FROM_ADDRESS as address
    , CASE
    WHEN COUNT(DISTINCT TX_HASH) > 100 THEN 100
    ELSE COUNT(DISTINCT TX_HASH)
    END AS DEX_TRADES
    FROM ethereum.core.ez_dex_swaps
    WHERE block_number < {{last_block_number}}
    AND ORIGIN_FROM_ADDRESS = lower({{address}})
    Run a query to Download Data