Kruys-CollinsNew Users vs Returning Users Across
    Updated 2024-11-09
    WITH UserActivity AS (
    SELECT
    DATE_TRUNC(DAY, BLOCK_TIMESTAMP) AS activity_date,
    SENDER AS address
    FROM ethereum.defi.ez_bridge_activity
    WHERE bridge_address = LOWER('0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5')
    UNION ALL
    SELECT
    DATE_TRUNC(DAY, BLOCK_TIMESTAMP) AS activity_date,
    RECEIVER AS address
    FROM ethereum.defi.ez_bridge_activity
    WHERE bridge_address = LOWER('0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5')
    ),
    FirstTransactionDates AS (
    SELECT
    SENDER AS address,
    MIN(DATE_TRUNC(DAY, BLOCK_TIMESTAMP)) AS first_transaction_date
    FROM ethereum.defi.ez_bridge_activity
    WHERE bridge_address = LOWER('0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5')
    GROUP BY SENDER
    UNION ALL
    SELECT
    RECEIVER AS address,
    MIN(DATE_TRUNC(DAY, BLOCK_TIMESTAMP)) AS first_transaction_date
    FROM ethereum.defi.ez_bridge_activity
    WHERE bridge_address = LOWER('0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5')
    GROUP BY RECEIVER
    )
    SELECT
    COALESCE(UA.activity_date, FTD.first_transaction_date) AS date,
    COUNT(DISTINCT UA.address) AS "ACTIVE USERS",
    COUNT(DISTINCT FTD.address) AS "NEW USERS",
    COUNT(DISTINCT UA.address) - COUNT(DISTINCT FTD.address) AS "RETURNING USERS"
    FROM UserActivity UA
    FULL OUTER JOIN FirstTransactionDates FTD
    ON UA.activity_date = FTD.first_transaction_date
    QueryRunArchived: QueryRun has been archived