WITH ranked_buyers AS (
    SELECT
    buyer_address,
    DATE_TRUNC('day', BLOCK_TIMESTAMP) AS date,
    NFT_COLLECTION,
    ROW_NUMBER() OVER (
    PARTITION BY
    buyer_address
    ORDER BY
    BLOCK_TIMESTAMP
    ) AS rn
    FROM
    flow.core.ez_nft_sales
    WHERE
    NFT_COLLECTION IN ('A.e4cf4bdc1751c65d.AllDay', 'A.329feb3ab062d289.UFC_NFT', 'A.0b2a3299cc857e29.TopShot')
    )

    SELECT
    buyer_address,
    date AS first_purchase_date,
    -- Mapping the NFT_COLLECTION to a human-readable Platform
    CASE
    WHEN NFT_COLLECTION ='A.e4cf4bdc1751c65d.AllDay' THEN 'NFL All Day'
    WHEN NFT_COLLECTION ='A.329feb3ab062d289.UFC_NFT' THEN 'UFC Strike'
    WHEN NFT_COLLECTION ='A.0b2a3299cc857e29.TopShot' THEN 'NBA Top Shot'
    END AS Platform

    FROM
    ranked_buyers

    WHERE
    rn = 1

    ORDER BY
    first_purchase_date DESC;

    Run a query to Download Data