datavortexDaily New vs Returning Traders
    Updated 2025-02-04
    WITH UniqueBuyers AS (
    SELECT DISTINCT buyer_address, DATE(block_timestamp) AS trade_date
    FROM aptos.nft.ez_nft_sales
    WHERE block_timestamp >= current_timestamp - INTERVAL '1 month'
    ),
    UniqueSellers AS (
    SELECT DISTINCT seller_address, DATE(block_timestamp) AS trade_date
    FROM aptos.nft.ez_nft_sales
    WHERE block_timestamp >= current_timestamp - INTERVAL '1 month'
    ),
    AllTraders AS (
    SELECT buyer_address AS trader_address, trade_date FROM UniqueBuyers
    UNION
    SELECT seller_address AS trader_address, trade_date FROM UniqueSellers
    ),
    TraderFirstTrade AS (
    SELECT trader_address, MIN(trade_date) AS first_trade_date
    FROM AllTraders
    GROUP BY trader_address
    )
    SELECT
    trade_date,
    COUNT(DISTINCT CASE WHEN trade_date = first_trade_date THEN trader_address END) AS NewTraders,
    COUNT(DISTINCT CASE WHEN trade_date != first_trade_date THEN trader_address END) AS ReturningTraders
    FROM AllTraders
    JOIN TraderFirstTrade USING(trader_address)
    GROUP BY trade_date
    ORDER BY trade_date;

    QueryRunArchived: QueryRun has been archived