Updated 2024-12-06
    WITH MarkedTransactions AS (
    SELECT
    OWNER,
    MINT,
    BLOCK_TIMESTAMP,
    PRE_BALANCE,
    BALANCE,
    CASE
    WHEN BALANCE > PRE_BALANCE THEN 'ADD_MINUTES'
    WHEN BALANCE < PRE_BALANCE THEN 'SUBTRACT_MINUTES'
    ELSE 'NO_CHANGE'
    END AS TRANSACTION_TYPE,
    ABS(BALANCE - PRE_BALANCE) AS TOKEN_CHANGE
    FROM
    solana.core.fact_token_balances
    WHERE
    MINT IN ('9mkbt5gx6XsdCBVPLbioQ1NvgNjmNBktccGWctrExwJC', '28nC2fTmasMuLnbx9uuAJbavyxmA9EVnGfiYHVXdjtzC')
    AND BLOCK_TIMESTAMP BETWEEN '2024-11-25' AND '{{END_DATE}}' -- Time period up to END_DATE
    AND SUCCEEDED = TRUE
    ),
    TransactionMinutes AS (
    SELECT
    OWNER,
    MINT,
    CASE
    WHEN TRANSACTION_TYPE = 'ADD_MINUTES' THEN
    DATEDIFF(MINUTE, BLOCK_TIMESTAMP, '{{END_DATE}}') * TOKEN_CHANGE -- Minutes towards the END_DATE
    WHEN TRANSACTION_TYPE = 'SUBTRACT_MINUTES' THEN
    -DATEDIFF(MINUTE, BLOCK_TIMESTAMP, '{{END_DATE}}') * TOKEN_CHANGE -- Subtract minutes for removed tokens
    ELSE
    0
    END AS HOLDING_MINUTES,
    CASE
    WHEN TRANSACTION_TYPE = 'ADD_MINUTES' THEN
    DATEDIFF(MINUTE, BLOCK_TIMESTAMP, DATEADD(DAY, -7, '{{END_DATE}}')) * TOKEN_CHANGE -- Minutes for the 7 days prior to END_DATE
    WHEN TRANSACTION_TYPE = 'SUBTRACT_MINUTES' THEN
    QueryRunArchived: QueryRun has been archived