sql >> Base de Datos >  >> RDS >> PostgreSQL

Consulta de PostgreSQL para el informe Open-High-Low-Close (OHLC)

Tienes los tuyos agrupados al minuto. Lo cual voy a suponer que es incorrecto porque generalmente se realizan durante el día. Si me equivoco, tendrás que volver a cambiarlo.

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