i_danBaseChain: Transactions And Average TPS
    Updated 2024-11-14
    -- Parts of this query are forked and inspired from https://flipsidecrypto.xyz/optimus_prime/aptos-built-for-a-billion-people-rEKoh9 By Optimus_Prime

    SELECT
    -- All time calculations
    COUNT(*) AS total_transactions
    , DATEDIFF('second'
    , MIN(block_timestamp)
    , MAX(block_timestamp)) AS total_seconds
    , COUNT(*) / NULLIF(DATEDIFF('second'
    , MIN(block_timestamp)
    , MAX(block_timestamp))
    , 0) AS avg_all_time_tps
    -- Last 90 days calculations
    , COUNT(CASE
    WHEN block_timestamp >= CURRENT_DATE - INTERVAL '90 days'
    THEN 1 END) AS last_90_days_transactions
    , DATEDIFF('second'
    , MIN(CASE
    WHEN block_timestamp >= CURRENT_DATE - INTERVAL '90 days'
    THEN block_timestamp END)
    , MAX(block_timestamp)) AS last_90_days_seconds
    , COUNT(CASE
    WHEN block_timestamp >= CURRENT_DATE - INTERVAL '90 days'
    THEN 1 END) / NULLIF(DATEDIFF('second'
    , MIN(CASE
    WHEN block_timestamp >= CURRENT_DATE - INTERVAL '90 days'
    THEN block_timestamp END)
    , MAX(block_timestamp))
    , 0) AS avg_last_90_days_tps

    -- Last 30 days calculations
    , COUNT(CASE
    WHEN block_timestamp >= CURRENT_DATE - INTERVAL '30 days'
    THEN 1 END) AS last_30_days_transactions
    , DATEDIFF('second'
    QueryRunArchived: QueryRun has been archived