{"slug":"nse-pre-open-session-explained","qid":"gap_size_buckets","label":"gap_size_buckets","post_title":"nse-pre-open-session-explained","post_url":"/blog/lang/mr/nse-pre-open-session-explained#q-gap_size_buckets","columns":["gap_bucket","session_count","share_pct"],"rows":[{"gap_bucket":"0.00-0.25%","session_count":1318,"share_pct":33},{"gap_bucket":"0.25-0.50%","session_count":899,"share_pct":22.5},{"gap_bucket":"0.50-1.00%","session_count":939,"share_pct":23.5},{"gap_bucket":"1.00-2.00%","session_count":583,"share_pct":14.6},{"gap_bucket":"2.00%+","session_count":261,"share_pct":6.5}],"shape":"ranking","sql":"WITH bars AS\n(\n    SELECT\n        ticker,\n        date,\n        argMax(toFloat64(open), _ingest_time)  AS open_px,\n        argMax(toFloat64(close), _ingest_time) AS close_px\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'JPM', 'JNJ', 'KO', 'XOM')\n      AND date >= '2024-10-01'\n      AND date <  '2026-10-01'\n    GROUP BY ticker, date\n),\ngaps AS\n(\n    SELECT\n        open_px,\n        lagInFrame(close_px, 1) OVER (PARTITION BY ticker ORDER BY date ASC\n            ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close\n    FROM bars\n),\nbucketed AS\n(\n    SELECT\n        multiIf(\n            abs(open_px / prev_close - 1) <= 0.0025, '0.00-0.25%',\n            abs(open_px / prev_close - 1) <= 0.005,  '0.25-0.50%',\n            abs(open_px / prev_close - 1) <= 0.01,   '0.50-1.00%',\n            abs(open_px / prev_close - 1) <= 0.02,   '1.00-2.00%',\n                                                     '2.00%+') AS gap_bucket,\n        count()                                                AS session_count\n    FROM gaps\n    WHERE prev_close > 0\n      AND open_px > 0\n    GROUP BY gap_bucket\n)\nSELECT\n    gap_bucket,\n    session_count,\n    round(100 * session_count / sum(session_count) OVER (), 1) AS share_pct\nFROM bucketed\nORDER BY gap_bucket","computed_at":"2026-10-09T16:04:12.246357+00:00","elapsed":0.004203896}