{"slug":"mutual-fund-exchange-vs-sell-and-buy","qid":"session_gaps","label":"session_gaps","post_title":"mutual-fund-exchange-vs-sell-and-buy","post_url":"/blog/mutual-fund-exchange-vs-sell-and-buy#q-session_gaps","columns":["gap_label","session_pairs","share_pct"],"rows":[{"gap_label":"1 calendar day","session_pairs":214,"share_pct":78.4},{"gap_label":"2 calendar days","session_pairs":3,"share_pct":1.1},{"gap_label":"3 calendar days","session_pairs":48,"share_pct":17.6},{"gap_label":"4 calendar days","session_pairs":8,"share_pct":2.9}],"shape":"ranking","sql":"SELECT\n    concat(toString(gap_days), ' calendar day', if(gap_days = 1, '', 's')) AS gap_label,\n    count()                                        AS session_pairs,\n    round(100 * count() / sum(count()) OVER (), 1) AS share_pct\nFROM\n(\n    SELECT arrayJoin(arrayDifference(arraySort(groupArray(session_day)))) AS gap_days\n    FROM\n    (\n        SELECT DISTINCT dateDiff('day', toDate('2000-01-01'), date) AS session_day\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker = 'SPY'\n          AND date >= today() - 400\n          AND date <= today() - 3\n    )\n)\nWHERE gap_days > 0\nGROUP BY gap_days\nORDER BY gap_days","computed_at":"2026-09-28T15:08:13.459659+00:00","elapsed":0.033159472}