rw2023Bitcoin price movement in each timeframe
    Updated 2023-12-24
    WITH HourlyData AS (
    SELECT
    d.DATE_HOUR AS Hour,
    p.CLOSE,
    LAG(p.CLOSE, 1) OVER (ORDER BY d.DATE_HOUR) AS PreviousClose
    FROM crosschain.core.dim_date_hours d
    LEFT JOIN BITCOIN.price.fact_hourly_token_prices p ON d.DATE_HOUR = p.HOUR
    WHERE d.DATE_HOUR >= DATEADD(day, -30, CURRENT_TIMESTAMP()) -- Filtra para los últimos 30 días
    ),
    PercentChanges AS (
    SELECT
    Hour,
    (CLOSE - PreviousClose) / PreviousClose * 100 AS PercentChange
    FROM HourlyData
    WHERE PreviousClose IS NOT NULL -- Asegúrate de tener un precio previo para calcular el cambio porcentual
    ),
    CumulativeSums AS (
    SELECT
    Hour,
    SUM(CASE WHEN CONVERT_TIMEZONE('UTC', 'America/New_York', Hour)::time BETWEEN '08:00' AND '18:00' THEN PercentChange ELSE 0 END) OVER (ORDER BY Hour) AS CumulativeSumUS,
    SUM(CASE WHEN CONVERT_TIMEZONE('UTC', 'Europe/Brussels', Hour)::time BETWEEN '08:00' AND '18:00' THEN PercentChange ELSE 0 END) OVER (ORDER BY Hour) AS CumulativeSumEU,
    SUM(CASE WHEN CONVERT_TIMEZONE('UTC', 'Asia/Seoul', Hour)::time BETWEEN '08:00' AND '18:00' THEN PercentChange ELSE 0 END) OVER (ORDER BY Hour) AS CumulativeSumAPAC
    FROM PercentChanges
    )
    SELECT
    Hour,
    CumulativeSumUS,
    CumulativeSumEU,
    CumulativeSumAPAC
    FROM CumulativeSums
    ORDER BY Hour;

    QueryRunArchived: QueryRun has been archived