Wheee! it worked.
WITH
bars_t AS (
SELECT
date_trunc('day', ts_sess) AS time,
trunc(arg_min(open, ts), 2) AS open,
trunc(arg_max(close, ts), 2) AS close,
trunc(min(low), 2) AS low,
trunc(max(high), 2) AS high,
FROM ts_minute_bars
WHERE
symbol = 'NQ'
GROUP BY time
ORDER BY time
LIMIT 5
),
range_t AS (
SELECT
date_trunc('day', min(ts_sess)) AS minTs,
date_trunc('day', max(ts_sess)) AS maxTs,
FROM ts_minute_bars
WHERE symbol = 'NQ'
)
SELECT
(SELECT list(bars_t) FROM bars_t) AS bars,
(SELECT {'min': minTs, 'max': maxTs} FROM range_t) AS range
{
bars: [
{
time: '2000-01-03 00:00:00',
open: 7493.18,
close: 7604.68,
low: 7448.18,
high: 7662.18
},
{
time: '2000-01-04 00:00:00',
open: 7602.18,
close: 7327.18,
low: 7292.18,
high: 7609.68
},
{
time: '2000-01-05 00:00:00',
open: 7287.18,
close: 7275.18,
low: 7162.18,
high: 7385.18
},
{
time: '2000-01-06 00:00:00',
open: 7232.18,
close: 7082.68,
low: 7049.68,
high: 7320.18
},
{
time: '2000-01-07 00:00:00',
open: 7037.18,
close: 7329.18,
low: 7035.18,
high: 7341.68
}
],
range: { min: '2000-01-03 00:00:00', max: '2026-04-10 00:00:00' }
}