Updated 2022-11-07
    with

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

    -----------------------------------------------------------------------------------------------------------------------------------------
    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