Wrap a stream with table() to query it as bounded historical data:
-- Query all historical dataSELECT * FROM table(orders) ORDER BY order_time;-- Query specific time rangeSELECT * FROM table(orders)WHERE _tp_time >= '2024-01-01' AND _tp_time < '2024-02-01';
-- Start from earliest available dataSELECT * FROM orders SETTINGS seek_to = 'earliest';-- Start from latest (default)SELECT * FROM orders SETTINGS seek_to = 'latest';
-- Analyze yesterday's transaction patternsSELECT hour(transaction_time) as hour, count() as tx_count, avg(amount) as avg_amountFROM table(transactions)WHERE to_date(transaction_time) = today() - 1GROUP BY hourORDER BY hour;
-- Stream query with historical reference dataSELECT live.device_id, live.temperature, hist.avg_tempFROM sensor_readings AS liveLEFT JOIN ( SELECT device_id, avg(temperature) as avg_temp FROM table(sensor_readings) WHERE _tp_time > now() - INTERVAL 24 HOUR GROUP BY device_id) AS hist ON live.device_id = hist.device_idWHERE live.temperature > hist.avg_temp * 1.5;