datavortexNew Vs Returning Delegators
    Updated 2024-12-05
    WITH first_delegate AS (
    SELECT
    delegator_address,
    MIN(DATE_TRUNC('week', block_timestamp)) AS first_stake_week
    FROM
    sei.gov.fact_staking
    WHERE
    action = 'delegate'
    GROUP BY
    delegator_address
    ),
    weekly_delegate AS (
    SELECT
    DATE_TRUNC('week', block_timestamp) AS week,
    delegator_address
    FROM
    sei.gov.fact_staking
    WHERE
    action = 'delegate'
    GROUP BY
    week, delegator_address
    )

    SELECT
    wd.week,
    COUNT(DISTINCT CASE WHEN fd.first_stake_week = wd.week THEN wd.delegator_address END) AS "new_delegators",
    COUNT(DISTINCT CASE WHEN fd.first_stake_week < wd.week THEN wd.delegator_address END) AS "returning_delegators"
    FROM
    weekly_delegate wd
    LEFT JOIN
    first_delegate fd ON wd.delegator_address = fd.delegator_address
    GROUP BY
    wd.week
    ORDER BY
    QueryRunArchived: QueryRun has been archived