{"slug":"us-market-volume-by-hour-german-time","qid":"volumen_berliner_stunden","label":"volumen_berliner_stunden","post_title":"us-market-volume-by-hour-german-time","post_url":"/blog/lang/de/us-market-volume-by-hour-german-time#q-volumen_berliner_stunden","columns":["berlin_time","volumen_anteil_pct","volumen_mrd_aktien","trades_je_minute"],"rows":[{"berlin_time":"15:30-16:30","volumen_anteil_pct":26.54,"volumen_mrd_aktien":3.2,"trades_je_minute":3572},{"berlin_time":"16:30-17:30","volumen_anteil_pct":15.55,"volumen_mrd_aktien":1.87,"trades_je_minute":3275},{"berlin_time":"17:30-18:30","volumen_anteil_pct":11.89,"volumen_mrd_aktien":1.43,"trades_je_minute":2649},{"berlin_time":"18:30-19:30","volumen_anteil_pct":10.14,"volumen_mrd_aktien":1.22,"trades_je_minute":1320},{"berlin_time":"19:30-20:30","volumen_anteil_pct":9.3,"volumen_mrd_aktien":1.12,"trades_je_minute":1242},{"berlin_time":"20:30-21:30","volumen_anteil_pct":11.47,"volumen_mrd_aktien":1.38,"trades_je_minute":1351},{"berlin_time":"21:30-22:00","volumen_anteil_pct":15.12,"volumen_mrd_aktien":1.82,"trades_je_minute":3081}],"shape":"series","sql":"SELECT\n    berlin_time,\n    round(100 * bucket_volume / sum(bucket_volume) OVER (), 2) AS volumen_anteil_pct,\n    round(bucket_volume / 1e9, 2)                              AS volumen_mrd_aktien,\n    trades_je_minute\nFROM\n(\n    SELECT\n        intDiv(berlin_minute - 930, 60) AS bucket,\n        concat(\n            leftPad(toString(intDiv(930 + 60 * bucket, 60)), 2, '0'), ':',\n            leftPad(toString(modulo(930 + 60 * bucket, 60)), 2, '0'), '-',\n            leftPad(toString(intDiv(least(990 + 60 * bucket, 1320), 60)), 2, '0'), ':',\n            leftPad(toString(modulo(least(990 + 60 * bucket, 1320), 60)), 2, '0')\n        )                               AS berlin_time,\n        sum(volume)                     AS bucket_volume,\n        round(avg(transactions), 0)     AS trades_je_minute\n    FROM\n    (\n        SELECT\n            toHour(toTimeZone(window_start, 'Europe/Berlin')) * 60\n                + toMinute(toTimeZone(window_start, 'Europe/Berlin')) AS berlin_minute,\n            volume,\n            transactions\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO')\n          AND window_start >= '2026-07-01'\n          AND window_start <  '2026-09-26'\n    )\n    WHERE berlin_minute >= 930 AND berlin_minute < 1320\n    GROUP BY bucket, berlin_time\n)\nORDER BY bucket","computed_at":"2026-10-01T15:38:16.686744+00:00","elapsed":0.010191989}