PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Interrogazione di PostgreSQL per report Open-High-Low-Close (OHLC).

Hai il tuo raggruppato per minuto. Cosa che suppongo sia sbagliata perché in genere vengono eseguiti di giorno. Se sbaglio, dovrai cambiarlo di nuovo.

SELECT DISTINCT contract_id, ts::date,
  min(price) OVER w,
  max(price) OVER w,
 first_value(price) OVER w, 
 last_value(price) OVER w
FROM fill
WINDOW w AS (PARTITION BY contract_id, ts::date ORDER BY ts)
ORDER BY 1,2