picasoBOBA User Segmentation by Transaction Count 1
    Updated 2025-03-02
    WITH user_tx_counts AS (
    SELECT
    FROM_ADDRESS,
    COUNT(DISTINCT TX_HASH) AS unique_txs
    FROM boba.core.fact_transactions
    WHERE BLOCK_TIMESTAMP >= DATEADD('year', -1, CURRENT_DATE)
    GROUP BY FROM_ADDRESS
    ),
    user_segments AS (
    SELECT
    CASE
    WHEN unique_txs = 1 THEN 'New (1 tx)'
    WHEN unique_txs BETWEEN 2 AND 10 THEN 'Rare (2-10 txs)'
    WHEN unique_txs BETWEEN 11 AND 50 THEN 'Casual (11-50 txs)'
    WHEN unique_txs BETWEEN 51 AND 500 THEN 'Active (51-500 txs)'
    WHEN unique_txs BETWEEN 501 AND 5000 THEN 'Heavy (501-5000 txs)'
    ELSE 'Super (>5000 txs)'
    END AS user_segment,
    COUNT(*) AS user_count
    FROM user_tx_counts
    GROUP BY 1
    )
    SELECT
    user_segment,
    user_count,
    ROUND(user_count * 100.0 / SUM(user_count) OVER(), 2) AS percentage
    FROM user_segments
    ORDER BY user_count DESC;
    Last run: 16 days ago
    USER_SEGMENT
    USER_COUNT
    PERCENTAGE
    1
    Rare (2-10 txs)1015860.82
    2
    New (1 tx)452027.06
    3
    Casual (11-50 txs)14058.41
    4
    Active (51-500 txs)5263.15
    5
    Heavy (501-5000 txs)830.5
    6
    Super (>5000 txs)90.05
    6
    186B
    10s