datavortexNew vs returning traders
    Updated 2024-12-17
    WITH user_activity AS (
    SELECT
    origin_from_address,
    DATE_TRUNC('week', block_timestamp) AS week_start
    FROM kaia.defi.ez_dex_swaps
    WHERE platform = 'capybara'
    GROUP BY origin_from_address, week_start
    ),
    first_swap_week AS (
    SELECT
    origin_from_address,
    MIN(week_start) AS first_swap_week
    FROM user_activity
    GROUP BY origin_from_address
    ),
    new_vs_returning AS (
    SELECT
    ua.week_start,
    COUNT(DISTINCT CASE WHEN ua.week_start = fsw.first_swap_week THEN ua.origin_from_address END) AS new_users,
    COUNT(DISTINCT CASE WHEN ua.week_start > fsw.first_swap_week THEN ua.origin_from_address END) AS returning_users
    FROM user_activity ua
    JOIN first_swap_week fsw ON ua.origin_from_address = fsw.origin_from_address
    GROUP BY ua.week_start
    )
    SELECT
    wd.week_start,
    wd.weekly_active_users,
    nvr.new_users,
    nvr.returning_users
    FROM (
    SELECT
    week_start,
    COUNT(DISTINCT origin_from_address) AS weekly_active_users
    FROM user_activity
    GROUP BY week_start
    ) wd
    QueryRunArchived: QueryRun has been archived