adambaladoodles139
    Updated 2023-04-13
    with

    base_table as (
    select block_timestamp :: date as balance_date,
    case when lower(contract_address) = lower('0x8a90cab2b38dba80c64b7734e58ee1db38b8992e') then 'DOODLE' else contract_address end as contract_address,
    user_address,
    symbol,
    CURRENT_BAL_UNADJ from ethereum.core.ez_balance_deltas
    where block_timestamp::date >= '2020-01-01'
    --and symbol = 'DOODLE'
    and lower(contract_address) = lower('0x8a90cab2b38dba80c64b7734e58ee1db38b8992e') ),

    -----------------------------------------------------------------------------------------------------------------------------------------
    all_days as (
    select date_day as balance_date
    from ethereum.core.dim_dates
    where date_day >= '2020-01-01'),
    -----------------------------------------------------------------------------------------------------------------------------------------
    address_ranges as (
    select user_address,
    contract_address,
    symbol,
    min( balance_date::date) as min_block_date,
    current_date()::date as max_block_date
    from base_table
    group by user_address, contract_address, symbol, max_block_date ),
    -----------------------------------------------------------------------------------------------------------------------------------------

    all_dates as (
    select c.balance_date,
    a.user_address,
    a.contract_address,
    a.symbol
    from all_days c left join address_ranges a on c.balance_date between a.min_block_date and a.max_block_date
    where a.user_address is not null ),
    Run a query to Download Data